<SEC-DOCUMENT>0001654954-22-004048.txt : 20220329
<SEC-HEADER>0001654954-22-004048.hdr.sgml : 20220329
<ACCEPTANCE-DATETIME>20220329172546
ACCESSION NUMBER:		0001654954-22-004048
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		102
CONFORMED PERIOD OF REPORT:	20211231
FILED AS OF DATE:		20220329
DATE AS OF CHANGE:		20220329

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:		22782148

	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/2021" 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/2021q4" 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/2021-01-31" xmlns:country="http://xbrl.sec.gov/country/2021" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:srt-types="http://fasb.org/srt-types/2021-01-31" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:srt="http://fasb.org/srt/2021-01-31" xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31" xmlns:tomz="http://tomz.com/20211231"><head><title>tomz_10k.htm</title><!--Document Created by XBRLMaster--><meta http-equiv="Content-Type" content="text/html" /></head><body style="text-align:left;font:10pt times new roman"><div style='display:none;text-align:left;font:10pt times new roman;' id='XBRLDIV'><ix:header><ix:hidden><ix:nonNumeric name="dei:EntityCentralIndexKey" contextRef="From2021-01-01to2021-12-31">0000314227</ix:nonNumeric><ix:nonNumeric name="dei:AmendmentFlag" contextRef="From2021-01-01to2021-12-31" format="ixt:booleanfalse">false</ix:nonNumeric><ix:nonNumeric name="dei:CurrentFiscalYearEndDate" contextRef="From2021-01-01to2021-12-31">--12-31</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalPeriodFocus" contextRef="From2021-01-01to2021-12-31">FY</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalYearFocus" contextRef="From2021-01-01to2021-12-31">2021</ix:nonNumeric><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" contextRef="AsOf2020-12-31" unitRef="USDPShares" decimals="INF">0.01</ix:nonFraction><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" contextRef="AsOf2020-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="AsOf2020-12-31" unitRef="Shares" decimals="0">16761513</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="USDPShares" decimals="INF">0.01</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:PreferredStockSharesAuthorized" contextRef="AsOf2020-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0">1000000</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2020-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0">63750</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="AsOf2020-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="USDPShares" decimals="INF">1000</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2020-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="AsOf2020-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0">0</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="AsOf2020-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:OtherGeneralAndAdministrativeExpense" contextRef="From2021-01-01to2021-12-31" unitRef="USD" decimals="0">6104363</ix:nonFraction><ix:nonFraction name="us-gaap:OtherGeneralAndAdministrativeExpense" contextRef="From2020-01-01to2020-12-31" unitRef="USD" decimals="0">7102942</ix:nonFraction><ix:nonFraction name="tomz:ReverseStockSplitAdjustmentAmount" contextRef="From2020-01-01to2020-12-31" unitRef="USD" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayable" contextRef="From2021-01-01to2021-12-31" unitRef="USD" decimals="0" sign="-" format="ixt:numdotdecimal">447429</ix:nonFraction><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants" contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToConversionOfDebtSecurities" contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToConversionOfDebtSecurities" contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements" contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:InventoryValuationReserves" contextRef="AsOf2020-12-31" unitRef="USD" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" contextRef="AsOf2020-12-31" unitRef="USD" decimals="0">68000</ix:nonFraction><ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2020-07-01to2020-09-30_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0">63750</ix:nonFraction><ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2021-07-01to2021-09-30_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0">63750</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2020-12-31_tomz_EquityIncentivePlanOneMember" unitRef="Shares" decimals="0">3600000.0</ix:nonFraction><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" contextRef="AsOf2020-12-31_tomz_EquityIncentivePlanOneMember" unitRef="Shares" decimals="0">2200000.0</ix:nonFraction><ix:nonFraction name="tomz:AmortizationOfTenantImprovementAllowance" contextRef="From2020-01-01to2020-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="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" unitRef="Shares" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2021-09-30_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0">1000000</ix:nonFraction><ix:nonFraction name="tomz:Preferredstockparorstatedvaluepershare" contextRef="AsOf2021-12-31" unitRef="USDPShares" decimals="INF">1000</ix:nonFraction><ix:nonFraction name="us-gaap:ProductLiabilityContingencyAccrualPresentValue" contextRef="AsOf2020-12-31" unitRef="USD" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:ProductLiabilityContingencyAccrualPresentValue" contextRef="AsOf2021-12-31" unitRef="USD" decimals="0">0</ix:nonFraction><ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" contextRef="From2021-01-01to2021-12-31" unitRef="USD" decimals="0" sign="-" format="ixt:numdotdecimal">4509585</ix:nonFraction><ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" contextRef="From2021-01-01to2021-12-31" unitRef="USD" decimals="0" sign="-" format="ixt:numdotdecimal">4509585</ix:nonFraction><ix:nonFraction name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization" contextRef="From2020-01-01to2020-12-31" unitRef="USD" decimals="0">0</ix:nonFraction></ix:hidden><ix:references><link:schemaRef xlink:type='simple' xlink:href='tomz-20211231.xsd'></link:schemaRef></ix:references><ix:resources><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="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_BoardOfDirectorsChairmanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:BoardOfDirectorsChairmanMember</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-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefExecutiveOfficerMember</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-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefFinancialOfficerMember</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="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefFinancialOfficerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefOperatingOfficerMember</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="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefOperatingOfficerMember</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_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">srt:ChiefExecutiveOfficerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-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>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_ThreeCustomersMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:ThreeCustomersMember</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_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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-04-21"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-04-21</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-10-01_tomz_TwoThousandSixteenEquityPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:TwoThousandSixteenEquityPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-10-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_TwoThousandSixteenEquityPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:TwoThousandSixteenEquityPlanMember</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_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="AsOf2020-09-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:instant>2020-09-22</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-09-01to2020-09-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-09-01</xbrli:startDate><xbrli:endDate>2020-09-22</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-09-01to2020-09-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-09-01</xbrli:startDate><xbrli:endDate>2020-09-22</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-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="AsOf2020-08-30_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"><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:StockWarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-08-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"><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:StockWarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-02-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-10-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>2020-10-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-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>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"><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:StockWarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-08-30_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:instant>2020-08-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-01-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:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember"><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:AprilTwentyTwentyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantMember</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_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember"><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:OctoberwentyTwentyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantMember</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_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember"><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:AprilTwentyTwentyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantThreeMember</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_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember"><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:AprilTwentyTwentyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantTwoMember</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_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember"><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:AprilTwentyTwentyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2020-08-01to2020-08-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>2020-08-01</xbrli:startDate><xbrli:endDate>2020-08-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember"><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:OctoberwentyTwentyMember</xbrldi:explicitMember><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-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember"><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:AprilTwentyTwentyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantThreeMember</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_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember"><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:AprilTwentyTwentyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantTwoMember</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_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember"><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:AprilTwentyTwentyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantOneMember</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_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember"><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:AprilTwentyTwentyMember</xbrldi:explicitMember><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="From2020-01-01to2020-01-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"><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:StockWarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-08-01</xbrli:startDate><xbrli:endDate>2020-08-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"><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:StockWarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2020-02-29</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"><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:StockWarrantMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-10-01to2020-10-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>2020-10-01</xbrli:startDate><xbrli:endDate>2020-10-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-09-30_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-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-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: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_MayTwentyTwentyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyMember</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_JuneTwentyTwentyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwentyTwentyMember</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_OctoberTwoThousandTwentyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberTwoThousandTwentyMember</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_JulyTwentyTwentyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JulyTwentyTwentyMember</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_MarchTwentyTwentyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MarchTwentyTwentyMember</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="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="AsOf2021-09-30_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-09-30</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="From2020-01-01to2020-01-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-01-31</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="From2021-01-01to2021-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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_WarrantsNineMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsNineMember</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="AsOf2021-12-31_tomz_WarrantsNineMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsNineMember</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_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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_WarrantsSixMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSixMember</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="AsOf2021-12-31_tomz_WarrantsSixMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSixMember</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_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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-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>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_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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-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="AsOf2019-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>2019-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="From2021-01-01to2021-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>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_RangeSixMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSixMember</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_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>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_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>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_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>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_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>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_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>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-12-31_tomz_RangeSixMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSixMember</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_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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-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="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="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="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-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="AsOf2020-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>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-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>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2021-07-01to2021-09-30_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:startDate>2021-07-01</xbrli:startDate><xbrli:endDate>2021-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-07-01to2020-09-30_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:startDate>2020-07-01</xbrli:startDate><xbrli:endDate>2020-09-30</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="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-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="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-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="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-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="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-12-31_tomz_RevenueByGeographicRegionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:RevenueByGeographicRegionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_RevenueByGeographicRegionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:RevenueByGeographicRegionMember</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="From2020-01-01to2020-12-31_tomz_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">tomz:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-12-31_us-gaap_DomesticCountryMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-12-31_tomz_ProductAndServiceRevenueMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_ProductAndServiceRevenueMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</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:IncomeTaxAuthorityAxis">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_us-gaap_DomesticCountryMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</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_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="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="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tomz:DilutedNetIncomeorLossMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tomz:DilutedNetIncomeorLossMember</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="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_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="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="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_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_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="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="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-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>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2019-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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2019-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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2019-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2019-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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2019-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>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2020-01-01to2020-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2020-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>2020-12-31</xbrli:instant></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="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="AsOf2020-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>2020-12-31</xbrli:instant></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="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-03-14"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-03-14</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2021-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-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 </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>SECURITIES AND EXCHANGE COMMISSION</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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="From2021-01-01to2021-12-31" name="dei:DocumentType">10-K</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"><ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:DocumentAnnualReport" format="ixt-sec:boolballotbox">&#9746;</ix:nonNumeric><strong>&#160;&#160;&#160; ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</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;">For the fiscal year ended <strong><ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:DocumentPeriodEndDate" format="ixt:datemonthdayyearen">December 31, 2021</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 0px 0px 0in; text-align:center;">or</p><p style="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"><ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox">&#9744;</ix:nonNumeric><strong>&#160;&#160;&#160; </strong><strong>TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</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;">For the transition period from&#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><ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:EntityFileNumber">000-09908</ix:nonNumeric></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:55%" 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 0px 0px 0in; text-align:center;"><strong><span style="font-size:18pt"><ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:EntityRegistrantName">TOMI ENVIRONMENTAL SOLUTIONS, INC.</ix:nonNumeric></span></strong></p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;(Exact name of registrant as specified in its charter)</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;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 0px 0px 0in; text-align:center;"><strong><ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen">Florida</ix:nonNumeric></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 0px 0px 0in; text-align:center;"><strong><ix:nonNumeric contextRef="From2021-01-01to2021-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 0px 0px 0in; 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 0px 0px 0in; 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="From2021-01-01to2021-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="From2021-01-01to2021-12-31" name="dei:EntityAddressCityOrTown">Frederick</ix:nonNumeric>, <ix:nonNumeric contextRef="From2021-01-01to2021-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 0px 0px 0in; text-align:center;"><strong><ix:nonNumeric contextRef="From2021-01-01to2021-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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Registrant&#8217;s telephone number, including area code: (<ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:CityAreaCode">800</ix:nonNumeric>) <ix:nonNumeric contextRef="From2021-01-01to2021-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;text-indent:45px">Securities registered under Section 12(b) 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;border-right:#000000 1px solid;border-bottom:#000000 1px solid;text-align:justify;margin-left:auto;margin-right:auto;width:100%" cellpadding="2"><tbody><tr style="height:15px"><td style="border-top:#000000 1px solid;border-left:#000000 1px solid;padding:2px;width:33%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Title of each class</strong></p></td><td style="border-top:#000000 1px solid;padding-bottom:2px;padding-top:2px;padding-left:2px;border-left:#000000 1px solid;padding-right:2px;padding:2px;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Trading</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Symbol(s)</strong></p></td><td style="border-top:#000000 1px solid;padding-bottom:2px;padding-top:2px;padding-left:2px;border-left:#000000 1px solid;padding-right:2px;padding:2px;width:33%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Name of each exchange on </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>which registered</strong></p></td></tr><tr style="height:15px"><td style="border-top:#000000 1px solid;padding-bottom:2px;padding-top:2px;padding-left:2px;border-left:#000000 1px solid;padding-right:2px;padding:2px;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:Security12bTitle">Common Stock, par value $0.001 per share</ix:nonNumeric></p></td><td style="border-top:#000000 1px solid;padding-bottom:2px;padding-top:2px;padding-left:2px;border-left:#000000 1px solid;padding-right:2px;padding:2px;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:TradingSymbol">TOMZ</ix:nonNumeric></p></td><td style="border-top:#000000 1px solid;padding-bottom:2px;padding-top:2px;padding-left:2px;border-left:#000000 1px solid;padding-right:2px;padding:2px;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">The <ix:nonNumeric contextRef="From2021-01-01to2021-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 0px 0px 0in;text-indent:45px">Securities registered under Section 12(g) of the Exchange Act: <strong>None</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:center;">___________________________________________</p><p style="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:45px">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Yes &#9744; <ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:EntityWellKnownSeasonedIssuer">No</ix:nonNumeric> &#9746;</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 0px 0px 0in;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="From2021-01-01to2021-12-31" name="dei:EntityVoluntaryFilers">No</ix:nonNumeric> &#9746;</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 0px 0px 0in;text-indent:45px">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="From2021-01-01to2021-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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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="From2021-01-01to2021-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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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="From2021-01-01to2021-12-31" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen">Non-accelerated Filer</ix:nonNumeric></p></td><td>&#9746;</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="From2021-01-01to2021-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="From2021-01-01to2021-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 0px 0px 0in">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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="From2021-01-01to2021-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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">As of June 30, 2021, 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="AsOf2021-06-30" name="dei:EntityPublicFloat" format="ixt:numdotdecimal" decimals="0" scale="0" unitRef="USD">29,763,900</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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">As of March 14, 2022, the registrant had <ix:nonFraction contextRef="AsOf2022-03-14" name="dei:EntityCommonStockSharesOutstanding" format="ixt:numdotdecimal" decimals="INF" unitRef="Shares">19,732,705</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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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, 2021</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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Page</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"><td colspan="5"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong><a href="#p1">PART I</a></strong></p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><a href="#i1">1.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">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 0px 0px 0in; text-align:center;"><a href="#i1a">1A.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">12</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 0px 0px 0in; text-align:center;"><a href="#i1b">1B.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">22</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 0px 0px 0in; text-align:center;"><a href="#i2">2.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">22</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 0px 0px 0in; text-align:center;"><a href="#i3">3.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">22</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 0px 0px 0in; text-align:center;"><a href="#i4">4.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">22</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="5"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong><a href="#p2">PART II</a></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 0px 0px 0in; text-align:center;"><a href="#i5">5.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">23</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 0px 0px 0in; text-align:center;"><a href="#i6">6.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">23</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 0in; text-align:center;"><a href="#i7">7.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">23</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 0px 0px 0in; text-align:center;"><a href="#i8">8.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">40</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 0in; text-align:center;"><a href="#i9">9.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">40</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 0px 0px 0in; text-align:center;"><a href="#i9a">9A.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">40</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 0in; text-align:center;"><a href="#i9b">9B.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">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 colspan="5"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong><a href="#p3">PART III</a></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 0px 0px 0in; text-align:center;"><a href="#i10">10.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">42</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 0px 0px 0in; text-align:center;"><a href="#i11">11.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">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:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><a href="#i12">12.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">48</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 0px 0px 0in; text-align:center;"><a href="#i13">13.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">50</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 0in; text-align:center;"><a href="#i14">14.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">50</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="5"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong><a href="#p4">PART IV</a></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 0px 0px 0in; text-align:center;"><a href="#i15">15.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:right;">52</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></td><td></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;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 0px 0px 0in"><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 0px 0px 0in; text-align:right;">&#160;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><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 0px 0px 0in"><strong><a href="#ei">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 0px 0px 0in; text-align:right;">&#160;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><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 0px 0px 0in"><strong><a href="#fs1">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 0px 0px 0in; text-align:right;">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 0px 0px 0in; 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 0px 0px 0in">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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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, some of which are listed under the section &#8220;Risk Factors,&#8221; Item&#160;1A of this Annual Report on Form 10-K. Readers should carefully review these risks, 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 0px 0px 0in; 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 0px 0px 0in"><strong><span class="atag" style="display: inline" id="i1">Item&#160;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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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 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 (BIT&#8482;). Our solution and process are environmentally friendly because the only by-product from our decontamination process is oxygen and humidity. Our solution is organically listed in the United States and Canada as a sustainable green product with no or very little carbon footprint. Most of our competitors in the disinfection space leave significant byproducts and are corrosive. SteraMist is noncorrosive and does not damage equipment or facilities.</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 0px 0px 0in;text-indent:45px">Our SteraMist&#174; is a patented technology that produces ionized Hydrogen Peroxide (iHP&#8482;) using cold plasma science created under a grant by the United States Defense Advanced Research Projects Agency (DARPA). Our EPA 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 manual cleaning and many other disinfection decontamination processes. Proprietary ingredients accelerate mist and fog dispersion by reducing evaporation time and treatment duration. 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. Our DARPA-originated technology kills on contact with no residue.</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 0px 0px 0in;text-indent:45px">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.</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;">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 0px 0px 0in;text-indent:45px">SteraMist&#174; BIT&#8482; brings to the world a mechanical and automated method of cleaning using innovative technology and EPA registered Hospital-HealthCare disinfectant, which improves and upgrades existing disinfecting and cleaning protocols that mitigates the risk of liability in a facility with transmission of resistant infectious pathogens.&#160; We maintain this registration in all fifty (50) states, Washington DC, Canada, and registration and or importation rights in approximately thirty-five (35) other countries as of March 28,2022.</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><em>Our Technology</em></strong></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 0px 0px 0in;text-indent:45px">BIT<sup>&#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>&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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>.</sup></strong>OH hydroxyl radical. This hydroxyl radical is known as iHP<sup>&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">The sole active ingredient of BIT<sup>&#8482; </sup>is a low percentage (7.8%) Hydrogen Peroxide and is represented by the TOMI<sup>&#8482;</sup> SteraMist<sup>&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Each and every SteraMist<sup>&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;SteraMist<sup>&#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>&#174;</sup> is being used for terminal cleaning, evidence has demonstrated a reduction of Clostridium <em>difficile</em> spore rates. SteraMist<sup>&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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 subsides, our customers continued to utilize our products as cleaning protocols have been changed due the impact of the COVID-19 pandemic.</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 0px 0px 0in;text-indent:45px">&#160;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>&#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">&#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 0px 0px 0in;text-indent:45px">SteraMist<sup>&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our Products and Services</em></strong>&#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 style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">SteraPak<sup>&#174;</sup></span></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">SteraPak is our most affordable and portable SteraMist system yet.&#160; The all-in-one SteraPak<sup>&#174;</sup> places the SteraMist<sup>&#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>&#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></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:right;"><img src="tomz_10kimg10.jpg" alt="tomz_10kimg10.jpg" /></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><em><span style="text-decoration:underline">SteraMist<sup>&#174;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Surface Unit</span></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">&#160;Our SteraMist<sup>&#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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">Our SteraMist<sup>&#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>&#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></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:right;">&#160;<img src="tomz_10kimg2.jpg" alt="tomz_10kimg2.jpg" /></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><em><span style="text-decoration:underline">SteraMist<sup>&#174;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Environment System</span></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">Our SteraMist<sup>&#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>3</sup> (3,663 ft<sup>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>3</sup> (1,221 ft<sup>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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">Our SteraMist<sup>&#174;</sup> Environment System features additional programmable and printable features in PDF format. Other key features include lot # of BIT<sup>&#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></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&#160;<img src="tomz_10kimg3.jpg" alt="tomz_10kimg3.jpg" /></p></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="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">6</p></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><table style="border-spacing:0;font-size:10pt;text-align:left;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">The SteraMist<sup>&#174; </sup>Total Disinfection Cart</span></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">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>2</sub>O<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></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><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><img src="tomz_10kimg4.jpg" alt="tomz_10kimg4.jpg" /></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><em><span style="text-decoration:underline">SteraMist<sup>&#174;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Select Surface Unit</span></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">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>&#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></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:right;"><img src="tomz_10kimg5.jpg" alt="tomz_10kimg5.jpg" /></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><em><span style="text-decoration:underline">Stainless Steel 90 Degree Applicator</span></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">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></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><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;">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;&#160; </p><table style="border-spacing:0;font-size:10pt;text-align:left;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">iHP<sup>&#8482;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Plasma Decontamination Chamber</span></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;">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>&#174;</sup> Applicator or 90 Degree Applicator is permanently or semi-permanently mounted in the enclosure. This SteraMist<sup>&#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><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:right;"><img src="tomz_10kimg6.jpg" alt="tomz_10kimg6.jpg" /></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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">SteraMist<sup>&#174;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Custom Engineered System (CES)</span></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;">The SteraMist<sup>&#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>&#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><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:right;"><img src="tomz_10kimg7.jpg" alt="tomz_10kimg7.jpg" /></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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em><span style="text-decoration:underline">iHP<sup>&#8482;</sup></span></em></strong><strong><em><span style="text-decoration:underline"> Corporate Service Decontamination</span></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">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></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;<img src="tomz_10kimg8.jpg" alt="tomz_10kimg8.jpg" /></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><em>Industries &amp; Market Segments</em></strong></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 0px 0px 0in;text-indent:45px">Our product offerings help our customers create a healthier world by providing them a significant opportunity to help reduce the spread of Community Associated Infections (&#8220;CAI&#8217;s&#8221;) and Healthcare-Acquired Infections (&#8220;HAI&#8217;s&#8221;) and the most lethal of pathogens including our recent SARS CoV-2 pandemic and future pandemics.</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 0px 0px 0in;text-indent:45px">SteraMist<sup>&#174;</sup> and TOMI&#8217;s related service platforms are currently being used in a broad spectrum of industries and have the ability to fit into any cleaning protocol. We have categorized these industries into five (5) divisions: Hospital-HealthCare, Life Sciences, TOMI Service Network (TSN), Food Safety, and Commercial.</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 0px 0px 0in;text-indent:45px"><strong><em>Hospital-HealthCare.</em></strong> SteraMist<sup>&#174;</sup> solutions aid our Hospital-HealthCare customers in providing the quality of care and safety they provide to their patients by disinfecting patient and operating rooms, pharmacies, ambulances, and emergency environments in a hospital or healthcare facility. Our team of technicians and representatives train, write treatment protocols, maintain and troubleshoot capital equipment throughout the world for our Hospital-HealthCare customers.</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 0px 0px 0in;text-indent:45px">We continue to penetrate the hospital-healthcare market segment, and under the United States Patient Protection and Affordable Care Act&#8217;s (also known as the Affordable Care Act or ACA) Hospital Readmissions Reduction Program, hospitals that have high rates of infections and HAIs are facing significant financial penalties. Our SteraMist<sup>&#174;</sup> BIT<sup>&#8482;</sup> technology has proven to reduce the transference spread of infections leading to an overall reduction in the number of patients being infected as a result of the historic poor manual cleaning of these patient rooms, infectious disease rooms and operatory suites, with a corresponding return on investment to the hospital of up to 20-to-1 in the first year.</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;">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><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"><strong><em>Life Sciences. </em></strong>Our SteraMist<sup>&#174;</sup> line of products is a decontamination solution in this industry, specifically pharmaceutical (compounding and manufacturing), vivariums, research universities, BSLs (biological safety labs) 1, 2, 3 and 4 level, BSC&#8217;s (biological safety chambers), isolators, cage washers, and cleanrooms. With proper implementation of SteraMist<sup>&#174;</sup>, all facilities can reduce the risk of infectious as well as potentially infectious agents and/or materials, which facilities such as these handle on a routine basis.</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 0px 0px 0in;text-indent:45px">There are many requirements and restrictions on the type of decontamination agents our Life Sciences customers may use to prevent these risks and remediate adverse incidents. In light of these regulations, our rapid deployment of our effective iHP<sup>&#8482;</sup> aerosolized mist is the solution to lower risks, reduce damage to expensive laboratory equipment and furniture, eliminate other labor intense procedures, and perform decontamination clean-up in these spaces quickly, less caustically, requiring no wipe and with no residue. By using iHP technology these most important facilities are able to perform more experiments a year due to the effective quick treatment that iHP offers.</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 0px 0px 0in;text-indent:45px">Our team of technicians and representatives train, maintain, and troubleshoot capital equipment globally for our Life Sciences customers. Further, our iHP<sup>&#8482;</sup> Corporate Service decontamination team provides routine and emergency treatment. TOMI&#8217;s iHP<sup>&#8482;</sup> service team performs commissioning and decommissioning of facilities equipment or full complete space decontamination for new and existing customers.</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 0px 0px 0in;text-indent:45px"><strong><em>The TOMI Service Network</em></strong>. The TSN, has allowed us to enhance our corporate service division by creating a multi-nation-wide network composed of existing, full-service specialists. </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 0px 0px 0in;text-indent:45px">These professional servicing specialists (TSN partners) focus their businesses in the commercial and residential space. Our team of customer experience managers and our training department maintains and troubleshoots capital equipment for these individuals with the goal of implementing servicing procedures and protocols throughout the United States and Canada for our TSN partners. Members are provided access to 24/7 support in marketing their iHP service divisions and landing webpage connected to our website.</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 0px 0px 0in;text-indent:45px">We are technically advancing and streamlining engagement for the TOMI Service Network (TSN) by providing a user-friendly membership portal &#8211; The SteraMist | TSN Portal. This membership portal will host all marketing and informational material, ability to share member information to easily collaborate with other members, forums to interact and discuss topics and further develop knowledge on disinfection, podcast link, news alerts about new products and promotions, and direct to an order link. This portal will be available for desktop as well as a mobile app located on Apple App Store and Google Play. This portal will also be available for SteraMist Representatives, domestic and international, with amended permissions for ease of access to all SteraMist sales materials.</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 0px 0px 0in;text-indent:45px">Our TSN network includes professional first responders that specialize within the mold remediation, hurricane and tornado response and other mitigation fields, biohazard and forensic specialists, and janitorial businesses. </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 0px 0px 0in;text-indent:45px"><strong><em>Food Safety Industry. </em></strong>SteraMist<sup>&#174;</sup> aerosolizing cold plasma technology is an effective decontaminant in the food safety industry. According to the CDC, 80 million people per year in the United States contract, and 5,000 people die from, food poisoning or other food-related illnesses. Current food safety cleaning techniques involve time intensive processes, which can reduce food manufacturers&#8217; profit. Our iHP<sup>&#8482;</sup> degrades into only harmless water (humidity) and oxygen. We have applied for approval from the United States Food and Drug Administration (the &#8220;FDA&#8221;) and the United States Department of Agriculture (the &#8220;USDA&#8221;), when approved we anticipate that our solution can be applied directly to all foods. Currently we use SteraMist<sup>&#174;</sup> on food packing, processing and storage equipment as SteraMist<sup>&#174;</sup> is safe for use on electronics and kitchenware, along with high touch surfaces where most pathogens are found (such as phones, computers and kitchen appliances).&#160;We believe that SteraMist<sup>&#174; </sup>could be useful for decontamination at all phases of food production, from the farm,&#160;slaughterhouse,&#160;packaging and canning facilities, food storage locations to the transportation of food and to the restaurants and grocery stores.</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 0px 0px 0in;text-indent:45px"><strong><em>Commercial. </em></strong>TOMI commercial division addresses the viral pathogens threat to everyday operations. We bring powerful disinfection and decontamination to a wide array of industries with computability in endless use sites, from large-scale land, sea, and air transportation to county and state emergency facilities to retail and educational facilities. Our commercial customers have the goal to keep employees and first responders healthy while maintaining operations and our latest product launch the SteraPak<sup>&#174;</sup> has received well recognized feedback in these markets. </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;">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 0px 0px 0in;text-indent:45px">Homeland defense and border protection is a subspecialty of our commercial division<strong><em>. </em></strong>Our SteraMist<sup>&#174; </sup>line of products will give governmental bodies an added tool in their arsenal to mitigate the risk of a weaponized biological and chemical attack. In addition, SteraMist<sup>&#174;</sup> mitigates the spread of emerging pandemic viruses, including strains of Ebola, MERS, MLAV (filovirus), and influenza virus subtypes like h1n1, h5n1, h7n9 and h10n8. Our SteraMist<sup>&#174;</sup> line of products assists border patrol agents in controlling the spread of infectious disease introduced by foreign individuals by decontaminating interview rooms, containment rooms, holding cells and quarantine areas after a potential infected carrier&#8217;s condition either improves or the carrier dies.</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><em>INFORMATION WITH RESPECT TO OUR BUSINESS IN GENERAL</em></strong></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><em>Manufacturing</em></strong></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 0px 0px 0in;text-indent:45px">We outsource the manufacturing and blending of our SteraMist<sup>&#174;</sup> line of equipment and BIT<sup>&#8482;</sup> Solution. Our SteraMist<sup>&#174;</sup> equipment is manufactured by three (3) 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">TOMI maintains ownership of all the SteraMist<sup>&#174;</sup> product lines, including our BIT<sup>&#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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">As part of our intellectual property protection strategy, we have registered our BIT<sup>&#8482;</sup> solution with the Environmental Protection Agency (&#8220;EPA&#8221;), 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;Our portfolio includes more than&#160;twenty (20) Utility Patent&#160;applications&#160;worldwide&#160;for both method and system claims&#160;on SteraMist<sup>&#174;&#160;</sup>BIT<sup>&#8482;</sup>, either published or undergoing prosecution. In 2021, we were granted utility patents in Korea, Canada, Mexico, Taiwan, Israel, and Australia for our SteraMist BIT. In the recent past, we have obtained two related United States utility patents giving us protection of our technology until the year 2038, and we are pursuing further claims to additional capabilities in on-going United States and worldwide patent applications.&#160;</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 0px 0px 0in;text-indent:45px">We have submitted utility patent applications in&#160;multiple countries, including Europe, China, Brazil, and Australia for further additional applications of SteraMist BIT, and a related application has already been determined novel and inventive in Taiwan. We have been awarded a&#160;design patent on our surface-mounted applicator device in the United States, China, Japan, Taiwan, and Korea.&#160;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 at multiple jurisdictions, such as food decontamination.</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 0px 0px 0in;text-indent:45px">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><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"><strong><em>Marketing and Distribution</em></strong></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">We continue to perform decontamination services within cleanrooms, bio-safety 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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;In December of 2021, TOMI launched the SteraMist Amazon Store. The digital storefront expands our sales channels, increases TOMI brand awareness and optimizes and streamlines the buying process for our customers. </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><em>Competition</em></strong></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">We believe our SteraMist<sup>&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;We believe the SteraMist<sup>&#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><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 0px 0px 0in;text-indent:45px">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.</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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"><strong>&#160;</strong>In summary, SteraMist<sup>&#174; </sup>offers the following competitive advantages:</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#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;">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.</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;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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"><strong><em>Research &amp; Development</em></strong></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 0px 0px 0in;text-indent:45px">&#160;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, 2021 and 2020, were approximately $573,000 and $455,000, respectively.</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><em>Government Regulation</em></strong></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 0px 0px 0in;text-indent:45px">&#160;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. 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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;As of March 14, 2022, we have twenty-four (24) 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. We consider our relationship with the employees to be good. </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><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"><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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our recent financial performance was affected substantially by a spike in demand for sanitation products and services created by the COVID-19 Pandemic and such demand may not be sustainable.</em></strong></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 0px 0px 0in;text-indent:45px">During the first half of 2020, the COVID-19 pandemic increased the global demand for sanitizing products and services which help prevent the proliferation of COVID-19. Our products and services were among those that have experienced a significant increase in demand due to the COVID-19 pandemic, causing us to realize substantial increase in revenues and making us profitable for the first time. As the pandemic continued in the second half of 2020 that negatively affected the operation of our customers, and as the disease came under control due to the implementation of various protective measures, including the wider availability and administration of vaccines, we experienced a reduction of orders for our products from our customers. This reduction led to a significant decrease of our revenue and profitability in 2021. While we are implementing various strategies to acquire new customers and generate new demands, there is no guarantee that we will be able to achieve the same level of sales and revenues as those during the height of the pandemic. </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><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">We generated a net loss of approximately $4.4 million for the year ended December 31, 2021, and net income of $4.4 million for the year ended December 31, 2020, which was primarily due to a spike of demand for our products during the onset of COVID-19 pandemic. We also had an accumulated deficit of $43.5 million as of December 31, 2021. Prior to 2020, we have 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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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><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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Our SteraMist</em></strong><em><sup>&#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>&#174;</sup></em><strong><em> brand.</em></strong></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 0px 0px 0in;text-indent:45px">Our SteraMist<sup>&#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;">the effectiveness of our marketing and sales efforts in the United States and internationally;</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;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">our third-party manufacturers and suppliers&#8217; ability to manufacture and supply the components of our SteraMist<sup>&#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;</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;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">the availability, perceived advantages, relative cost, relative safety, and relative efficacy of alternative and competing disinfection products;</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;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">our ability to obtain, maintain, and enforce our intellectual property rights in and to our SteraMist<sup>&#174;</sup> products;</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;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">the emergence of competing technologies and other adverse market developments, and our need to enhance our SteraMist<sup>&#174;</sup> products and/or develop new products to maintain market share in response to such competing technologies or market developments;</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;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">our ability to raise additional capital on acceptable terms, or at all, if needed to support the commercialization of our SteraMist<sup>&#174;</sup> products; and</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;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">our ability to achieve and maintain compliance with all regulatory requirements applicable to our SteraMist<sup>&#174;</sup> products.</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-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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><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"><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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><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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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>&#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;text-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">We rely upon third parties to supply us with our products. We outsource the manufacturing of our SteraMist<sup>&#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>&#174;</sup> line of equipment and blenders for our SteraMist<sup>&#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. In addition, there was a shortage in the supply of bottles domestically that we use to carry our solutions. We expect such delays and shortages to continue in 2022. If these issues persist, they may further delay our ability to deliver our products and to recognize revenue. Any delay or impediment to our ability to recognize revenue for any given period could materially adversely affect our 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;">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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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. 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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 0px 0px 0in;text-indent:45px">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">&#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 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#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 do</em></strong></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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><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>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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">We have a limited management team size, even though we keep hiring and redefining job descriptions. 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-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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. 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-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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><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"><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>We have identified a&#160;material&#160;weakness&#160;in our internal control over financial reporting, which may adversely affect our ability to report our results of operations and financial condition accurately and in a timely manner.</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: 36pt; text-align:justify;">Our management is responsible for establishing and maintaining adequate internal control over financial reporting designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with GAAP. Our management is likewise required, on a quarterly basis, to evaluate the effectiveness of our internal controls and to disclose any changes and&#160;material&#160;weaknesses&#160;identified through such evaluation in those internal controls. A&#160;material&#160;weakness&#160;is a deficiency, or a combination of deficiencies, in internal control over financial reporting, such that there is a reasonable possibility that a material misstatement of our annual or interim financial statements will not be prevented or detected on a timely basis.</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: 36pt; text-align:justify;">As described in Item 9 in this Form 10-K, we identified a&#160;material&#160;weakness&#160;in our internal control over financial reporting related to reserves for bad debt. As a result of this&#160;material&#160;weakness, our management concluded that our internal control over financial reporting was not effective as of 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; TEXT-INDENT: 36pt; text-align:justify;">Any failure to maintain such internal control could adversely impact our ability to report our financial position and results from operations on a timely and accurate basis, which could result a material adverse effect on our business. If our financial statements are not accurate, investors may not have a complete understanding of our operations. Likewise, if our financial statements are not filed on a timely basis, we could be subject to sanctions or investigations by the stock exchange on which our ordinary shares are listed, the SEC or other regulatory authorities. In addition, we would likely incur additional accounting, legal and other costs in connection with any remediation steps. Failure to timely file may cause us to be ineligible to utilize short form registration statements on Form S-3 in the future, which may impair our ability to obtain capital in a timely fashion to execute our business strategies or issue shares to effect an acquisition. Ineffective internal controls could also cause investors to lose confidence in our reported financial information, which could have a negative effect on the trading price of our stock.</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: 36pt; text-align:justify;">As described in Item 9 of this Form 10-K, we are in the process of implementing a plan to remediate the material weakness.&#160; However,&#160; we can give no assurance that the measures we have taken and plan to take in the future will remediate the&#160;material&#160;weakness&#160;identified or that any additional&#160;material&#160;weaknesses&#160;or restatements of financial results will not arise in the future due to a failure to implement and maintain adequate internal control over financial reporting or circumvention of these controls. In addition, even if we are successful in strengthening our controls and procedures, in the future those controls and procedures may not be adequate to prevent or identify irregularities or errors or to facilitate the fair presentation of our financial statements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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><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"><strong>Risk Related to Our Securities</strong></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><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">the ability to collect our outstanding accounts receivable;</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;">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">As of December 31, 2021, we had outstanding options, warrants and convertible preferred stock to purchase approximately an aggregate of 3.6 million shares of our common stock at exercise prices ranging from $0.80 to $8.40 per share. Of these, approximately 143,000 represent shares underlying options with exercise prices ranging from $0.80 to $7.06 per share, approximately 3.4 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 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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><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>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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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">&#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><span class="atag" style="display: inline" id="i1b">Item&#160;1B. UNRESOLVED STAFF COMMENTS</span></strong></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 0px 0px 0in;text-indent:45px">Not applicable.</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><span class="atag" style="display: inline" id="i2">Item&#160;2. PROPERTIES</span></strong></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 0px 0px 0in;text-indent:45px">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>&#8482;</sup>SteraMist<sup>&#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 - quickly delivering a customer purchase. The training room is integrated with the newest technology to be able to present SteraMist<sup>&#174;</sup> virtually around the world. As the company keeps up with the demand for SteraMist<sup>&#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 $151,000.</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 0px 0px 0in;text-indent:45px">We lease a 300 square foot office and conference space located at 9454 Wilshire Blvd., Penthouse, Beverly Hills, CA 90212. We lease this space for $29,000 annually on a month-to-month tenancy in a professional office building. The property is used for meetings, sales demonstrations and various other business functions.</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><span class="atag" style="display: inline" id="i3">Item&#160;3. LEGAL PROCEEDINGS</span></strong></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span class="atag" style="display: inline" id="i4">Item&#160;4. MINE SAFETY DISCLOSURES</span></strong></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 0px 0px 0in;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;">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><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="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 0px 0px 0in"><strong><span class="atag" style="display: inline" id="i5">Item&#160;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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">As of March 1, 2022, there were 194 record holders of our common stock; however, we believe we have approximately 5,350 stockholders, including those held in street name. On March 25, 2022, the last reported sale price of our common stock on the Nasdaq was $0.93 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 0in"><strong>Dividends</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:45px">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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">See Form 8-K filed on September 28, 2021 relating to the issuance certain warrants to purchase shares of common stock of the Company pursuant to Regulation D of in connection with the registered direct offering of 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 0px 0px 0in"><strong><span class="atag" style="display: inline" id="i6">Item&#160;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 0px 0px 0in"><strong><span class="atag" style="display: inline" id="i7">Item&#160;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 0px 0px 0in"><em>The following discussion and analysis of our financial condition and results of operations relates to the years ended December 31, 2021 and 2020. 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 0px 0px 0in"><strong><em>Overview</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-indent:45px">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 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 (BIT&#8482;). Our solution and process are environmentally friendly as the only biproduct from our decontamination process is oxygen and 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. Most of our competitors in the disinfection space leave significant byproducts 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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Our SteraMist&#174; is a patented technology that produces ionized Hydrogen Peroxide (iHP&#8482;) using cold plasma science created under a grant by the United States Defense Advanced Research Projects Agency (DARPA). Our EPA 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.</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 0px 0px 0in;text-indent:45px">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.</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 0px 0px 0in;text-indent:45px">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. We maintain this registration in all fifty (50) states, Washington DC, Canada, and approximately thirty-five (35) other countries.</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><em>Markets</em></strong></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 0px 0px 0in;text-indent:45px">Our SteraMist<sup>&#174;</sup> products are designed to address a wide spectrum of industries using iHP<sup>&#8482;</sup>. Our operations consist of five main divisions based on our current target industries: Hospital-HealthCare, Life Sciences, TOMI Service Network (TSN), Food Safety and Commercial.</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 0px 0px 0in;text-indent:45px">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 (CES), 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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>&#174;</sup> disinfection decontamination.</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><em>Divisions</em></strong></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"><em>Life Sciences</em></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 0px 0px 0in;text-indent:45px">The SteraMist<sup>&#174; </sup>Environment System, Custom Engineered Systems (CES), the SteraMist<sup>&#174;</sup> Select Surface Unit (Plus), SteraBox, 90 Degree Applicator and our iHP<sup>&#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)&#160;validation processes within the life sciences industry.</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 0px 0px 0in;text-indent:45px">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 that can take months to design, build and implement, we expect installations to have impact to our results in 2022.</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 0px 0px 0in;text-indent:45px">Further, post COVID pandemic has brought some attention to the SteraMist product line, as our CES in Pfizer Missouri was recently showcased in a New York Times article as they featured their COVID vaccine processes. In addition, our iHP Corporate Service team treated one of four fill lines in a North Carolina pharmaceutical company that manufactures one of the COVID vaccines, with the remaining three lines set to be decontaminated in the future with SteraMist.</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 0px 0px 0in;text-indent:45px">&#160;For the 2022 year and beyond TOMI expects growth in SteraMist Custom Engineered Systems (CES) bids and the manufacturing and implementation of these fully automated decontamination systems. The first CES system was completed in 2016 for Dana Farber Cancer Institute, as Dana Farber was designing a new vivarium, they had the opportunity to integrate several new technologies to advance overall efficiency, quality, and design. One such technology, was the use of our ionized Hydrogen Peroxide (iHP) decontamination. SteraMist&#8217;s Custom Engineered System (CES) has become a leading solution to growing customer demands. 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. </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;">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"><em>Hospital-Healthcare</em></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 0px 0px 0in;text-indent:45px">&#160;The SteraMist<sup>&#174;</sup> line of products, specifically the SteraMist<sup>&#174;</sup> Surface Unit and SteraMist<sup>&#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, 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>&#8482;</sup> Solution. We plan to continue to expand our marketing, advertising and educational campaigns targeted at the Hospital-Healthcare marketing in an effort to grow our customer base and increase adoption of our SteraMist<sup>&#174;</sup> line of products. </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 0px 0px 0in;text-indent:45px">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>&#174;</sup> as it is critical in the healthcare setting. During 2020 the use of our SteraMist<sup>&#174;</sup> in such campuses increased due to our comprehensive training for their day and night shift maintenance and housekeeping departments. Annual comparison case studies from healthcare facilities are now available, which shows lower transmission infection rates in COVID, Clostridium <em>difficile</em> Spores and overall, HAI cases.</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 0px 0px 0in;text-indent:45px">UCLA recently completed a successful collection of critical data for the Shield Study. The Shield Study is a multi-year study comparing SteraMist with manual clean. The Study was conducted by multiple well-established hospitals. Initial findings have been positive regarding ease of use, overall efficacy, and quick turnaround time of patient rooms. TOMI looks forward to announcing the full results as soon as they are available to make public.</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 0px 0px 0in;text-indent:45px">TOMI anticipates this study will assist in the 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 Two (2) SteraPaks. 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 and rehabilitation.</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"><em>TOMI Service Network</em></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 0px 0px 0in;text-indent:45px">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>&#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>&#174;</sup> throughout the TSN division. TSN allows for increased accessibility and brand awareness of iHP<sup>&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">The TOMI Service Network (TSN) 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 may have declined, but the 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 customers, and the world returns to the new normal. </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 0px 0px 0in;text-indent:45px">Our SteraPak 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 to expand their current SteraMist offerings.</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"><em>Food Safety</em></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 0px 0px 0in;text-indent:45px">Food Safety presents significant potential as an opportunity for substantial growth with continued product research and compliance testing. With the food safety industry in North America coming under closer scrutiny with the implementation and enforcement of new and established guidelines. This concentration has previously been approved by the USDA and FDA for direct food and crop application and will allow SteraMist<sup>&#174;</sup> to expand use sites beyond food processing machinery, restaurants, and food contact areas. This will assist 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.</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 0px 0px 0in;text-indent:45px">TOMI continues to work with premium companies in testing and validating SteraMist<sup>&#174;</sup> technology in the Food Safety and seed industries. In 2021, we have made progress in enhancing brand awareness 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">With the global population explosion, we anticipate an increase in the demand for a mechanical way to disinfect our food supply. Every day there are news articles around the world pertaining to the contamination of food supply. The many published articles that the USDA in cooperation with TOMI have demonstrated that our technology offers a consistent alternative to the decade&#8217;s old chemical disinfection process. </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 0px 0px 0in;text-indent:45px">SteraMist will deliver more consistent and quicker results in all areas of our food supply- From Farm to Market, Processing to packaging and Storage to delivery. We plan on pursuing all these avenues. With the continued testing and need for the market coupled with our new .35% label, should make pursuing these opportunities successful. In addition, our solution and process is environmentally friendly in that the biproduct of SteraMist is only oxygen and humidity. We have our solution listed on OMRI and labeled as organic. Most disinfectants leave residue on furniture, objects, and foods. SteraMist does not leave any chemical residue on any surface. We have a very low carbon footprint, if any.</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"><em>Commercial</em></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 0px 0px 0in;text-indent:45px">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>&#174;</sup> throughout their community.</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 0px 0px 0in;text-indent:45px">Interest in SteraMist disinfection within the commercial division remains high. The SteraPak 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 SteraPak will generate substantial customer interest and create sales opportunities. Currently our customers are purchasing our SteraPak 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">We have listed the SteraPak on Amazon to better enhance consumer sales and accessibility in this division. Working alongside a full-service Amazon consulting agency, ORCA Pacific, we can better position ourselves with optimized content and increase customer traffic with enhanced advertising. </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><em>Business Highlights and Recent Events</em></strong></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"><strong><em>Registered Direct Offering:</em></strong></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 0px 0px 0in;text-indent:45px">In September 2021, we closed a registered direct offering of shares of our common stock priced at the market, resulting in net proceeds of $4,581,651, after deducting the placement agent&#8217;s fees and other offering expenses. The proceeds from the offering were used for sales and marketing expenses associated with our products, advertising, purchase of inventory and other general corporate purposes.</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"><strong><em>Revenues:</em></strong></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 0px 0px 0in;text-indent:45px">During the first half of 2020, the COVID-19 pandemic contributed to significant increase of our customer demand and sales growth, but it also caused a decline in our revenue in most of 2021 as many of our established vertical clients were closed or required to reduce operation due to the impact of COVID-19 pandemic on their business. The markets that were negatively affected included our life sciences clients that were nonessential, University and privately owned vivarium labs, and many nonessential global pharmaceutical research companies. In addition, the healthcare industry shifted its focus and resources in response to the pandemic and therefore substantially reduced elective surgical and clinical related services, resulting in limited non-essential onsite personnel. These trends made it difficult for us to demo our equipment and execute our sales and marketing strategies. In addition, our customers have limited budgets for newer technologies. As we move out of the pandemic, many companies throughout the world are including pandemic preparedness in their operation plans. The United States has earmarked federal funds for disinfection.</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;">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 0px 0px 0in;text-indent:45px">During 2021, our vendors and customers experienced supply and logistic related challenges which negatively impacted procurement, manufacturing lead times and transit times, which contributed to the delayed launch our SteraPak and pushed out certain capital projects involving the installation and integration of our disinfection engineered systems into our customers&#8217; facilities. </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 0px 0px 0in;text-indent:45px">While the pandemic created short term volatility in our year over year revenue, it also contributed to a rapid expansion of our customer base and overall brand recognition in the industry. Over the last two years, we have grown our user base substantially, which contributed to the growth in our solution revenue and recurring orders. Our solution sales for 2021 were down compared to 2020 due to the spike in demand at the onset of the COVID-19 pandemic in 2020. However, our solution revenue grew by 48% in 2021 as compared to 2019 due to the expansion of users we acquired over the last two years. In addition, our customer recurring solution orders increased 63% in 2021 as compared to 2019 prior to the pandemic. We believe this positive trend demonstrate a wider adoption of our technology in the marketplace which is consistent with our long-term business strategy.</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 0px 0px 0in;text-indent:45px">During the years ended December&#160;31, 2021, and 2020, our revenue declined by 69%. Our overall revenue, grew by 22% for the year ended December 31, 2021, when compared to the year ended December 31, 2019, our last full calendar year prior to the pandemic. The 2021 verse 2019 growth fell short of our expectations due to certain projects in our sales pipeline that were deferred into our 2022 calendar year as a result of supply chain issues with our customers and vendors. </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 0px 0px 0in;text-indent:45px">During the second half of 2021, we began to see positive signs from our prospective and existing customers as businesses began to reopen their standard business operations and locations, which has bolstered our future sales pipeline and led to 20% growth in our revenue for the last six months of 2021 when compared to the first six months of 2021. </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 0px 0px 0in;text-indent:45px">In December 2021, we announced the launch of our Amazon store where we featured the SteraPak and BIT solution. As the most cost effective SteraMist system, the SteraPak is primed to effectively target both businesses and consumer end users, making it, we believe, ideal flagship SteraMist product for sale on Amazon. Amazon is also an excellent branding opportunity for our new product. </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 0px 0px 0in;text-indent:45px">We continue to gain market share in the Life Science and Pharmaceutical industries where our brand name and technology is well known and respected. We continue to see demand for our iHP Customer Engineered Systems. During the third quarter of 2021, we received an order by a major pharmaceutical company in Europe to build an iHP Customer Engineered System which was delivered and permanently installed into their facility in the fourth quarter of 2021. In addition, in July 2021, we received a purchase order from a global biopharmaceutical company for our SteraMist Environment system and its validation service. After creating a new companywide decontamination standard for this biopharmaceutical company TOMI has received an order for a new facility resulting in an opportunity to expand with this company to multiple locations across the world. As we begin 2022, we are seeing continued positive trends and have received orders for our custom engineered systems of approximately $1,307,000 which will be recognized in our current (2022) calendar year. </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 0px 0px 0in;text-indent:45px">We expect increased revenues in 2022 when compared to 2021 due to the launch of our new products, specifically our backpack solution ("SteraPak") across all verticals, continued expansion of our existing products with our existing customers and increased solution sales as the world exits the pandemic. We believe that our Customer Engineered Systems (CES) will add significant revenue in 2022.</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 0px 0px 0in;text-indent:45px">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&#160;positive results of our product and the&#160;environmentally friendly results compared to the caustic results of other disinfectants.</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 0px 0px 0in;text-indent:45px">Dangerous pathogens still exist and will exist long after we recover from this pandemic. While the United States and most of the world is currently recovering from the SARS CoV-2 coronavirus outbreak, there are many pathogens which are respiratory in nature that are still a looming threat; these cases are occurring globally to this day. We believe SteraMist can mitigate and reduce the impact of the next pandemic as it has already proved during the outbreaks of Ebola, MERS and recently with SARS CoV-2 pandemic. We believe the need for a speedy comprehensive mechanical disinfectant like SteraMist cannot be stressed enough and should be included as the new norm of cleaning. </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;text-indent:45px"><strong><em>2021 Highlights:</em></strong></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 0px 0px 0in;text-indent:45px">On August 4, 2021, we introduced our SteraPak, which was launched in September 2021 and made available on Amazon in December 2021. The Company is currently marketing the SteraPak product through all divisions.</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 0px 0px 0in;text-indent:45px">On August 10, 2021, we secured a project to install an iHP Custom Engineered System (CES) for a major pharmaceutical company in Europe and are currently working with their locations in Brazil, Mexico, Germany, and Canada to purchase and implement SteraMist as their standard decontamination solution. </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 0px 0px 0in;text-indent:45px">On September 13, 2021, we launched a new Amazon store for the recently launched SteraPak, in the USA.</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 0px 0px 0in;text-indent:45px">On September 16, 2021, our technology has passed the EN 17272 evaluation. The EN 17272 is the European standard for airborne room disinfection in the form of gas, steam and/or aerosol.</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 0px 0px 0in;text-indent:45px">On September 27, 2021, we entered into definitive agreements with several institutional investors for the issuance and sale of 2,869,442 shares of its common stock in a registered direct offering priced at-the-market under Nasdaq rules</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 0px 0px 0in;text-indent:45px">On October 5, 2021, we received a purchase order from a multinational top five pharmaceutical company.</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 0px 0px 0in;text-indent:45px">On October 11, 2021, we obtained EPA registration for its 0.35% hydrogen peroxide BIT Solution, an all-in-one disinfectant for use across the entire food supply chain.</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 0px 0px 0in;text-indent:45px">As conferences and tradeshows are reopening for companies to exhibit live, TOMI will be attending multiple shows across the country in 2022. 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"><strong><em>2022 Highlights to Date:</em></strong></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 0px 0px 0in;text-indent:45px">TOMI recently received purchase orders, acceptance of CES proposals, and completed the supplier questionnaire (the first step to receiving a purchase order) for CES&#8217;s of approximately $1.3M. These orders include a multi-national pharmaceutical company who locally has chosen SteraMist in two of their areas requiring superior decontamination. The latter is a renowned institute that focuses on immunology and infection disease. </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"><strong><em>Research Studies:</em></strong></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 0px 0px 0in;text-indent:45px">The EPA has registered our 0.35% hydrogen peroxide product for the use in green houses, pre harvests and post harvests. 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. </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 0px 0px 0in;text-indent:45px">TOMI has partnered with the Department of Chemistry and Biochemistry of Texas Tech University to conduct a wide range of studies on spray pattern, deposition, and hydrogen peroxide content to compare our 1% label to other similar products on the market. TOMI has also once again partnered with USDA Agricultural Research Service for continued research on 1% solution. TOMI's long term relationship with USDA ARS continues to achieve results. In March 2021, an article entitled "Hydrogen peroxide residue on tomato, apple, cantaloupe, and Romaine lettuce after treatments with cold plasma-activated hydrogen peroxide&#8221; was accepted for publication in the Journal of Food Microbiology and we are excepting another paper to be published by the end of the year. </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 0px 0px 0in;text-indent:45px">We continue to work with our German aircraft partner and Boeing in a third-party test required for the aviation industry. We will incur no costs for this work as both testing partners are clients. We anticipate the testing will be completed in the first quarter of 2022.</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 0px 0px 0in;text-indent:45px">As previously discussed, TOMI has engaged HYGCEN Germany GmbH to perform a quantitative test of germ carriers for airborne room disinfection and testing of the effectiveness of a method for disinfecting room air to meet the new EU norm (standard) EN 17272. Certification that Binary Ionization Technology meets the new standard will continue to position iHP as the premier decontamination/disinfection technology available on the market today. On September 16, 2021, we announced that our technology has passed the EN 17272 evaluation. The EN 17272 is the European standard for airborne room disinfection in the form of gas, steam and/or aerosol.</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;">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 0px 0px 0in;text-indent:45px">October 2021, Applied Biosafety published a paper titled &#8220;Mechanisms of Sporicidal Activity Induced by Ionized Hydrogen Peroxide in the Spores of&#160;<em>Bacillus astrophaeus.&#8221;</em> This study reviewed the effects of iHP on the structure of the spores of Bacillus atrophaeus by observing its effects using transmission electron microscopy (TEM) and by evaluating the existence of DNA damage by fiuorescence-based quantitative polymerase chain reaction (qPCR). The results of the qPCR analysis showed two initial stages of damage to DNA with very noticeable damage at 12 h contact time, which confirms the observations of the TEM micrographs for the B. atrophaeus spores. In short, the study demonstrated damage to the spore core DNA.</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 0px 0px 0in;text-indent:45px">We have participated in a large multi-year federal funded study, known as the &#8220;SHIELD study&#8221; that compares hospital manual cleaning to a SteraMist<sup>&#174;</sup>&#160;mechanical cleaning. Preliminary results collected by the current hospitals in the study is showing a decrease in the transference of pathogens resulting in HAIs and Clostridium <em>difficile </em>infections in the rooms that used SteraMist<sup>&#174;</sup>&#160;for their terminal clean, as compared to the rooms that have been manually cleaned. Sufficient data has been collected to complete the study in 2021, and we expect that data to be provided to the examiners with a published paper to soon follow.</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"><strong><em>Product Development:</em></strong></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 0px 0px 0in;text-indent:45px">As many industrial companies are reducing R&amp;D and capital expenditures spending due to the economic impact of the pandemic, TOMI continues its capital and operating expenditures. We have orders for supplies and materials that are required in our equipment and are prepared to continue the manufacturing of all our products and should not be impacted by supply and material shortages. Further, TOMI has multiple suppliers, outsourced engineers, and software programmers to turn to for the manufacturing and installation of its SteraMist products. </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 0px 0px 0in;text-indent:45px">For the 2022 year and beyond TOMI expects measurable growth in winning SteraMist Custom Engineered Systems (CES) bids and the manufacturing and implementation of these fully automated decontamination systems. The first CES system was completed in 2016 for Dana Farber Cancer Institute, as Dana Farber was designing a new vivarium, they had the opportunity to integrate several new technologies to advance overall efficiency, quality, and design. One such technology, was the use of ionized Hydrogen Peroxide (iHP) decontamination. SteraMist&#8217;s Custom Engineered System (CES) has become a leading solution to growing customer demands. 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 improved the system. The CES eliminates issues such as human error, improves accuracy that is unmatched by competitors, and decreases a client&#8217;s labor cost and downtime. </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 0px 0px 0in;text-indent:45px">We are in the process of developing two new product lines:</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"><strong><em>The Select Plus:</em></strong></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 0px 0px 0in;text-indent:45px">The Select Plus remains in the final design phase. This is a hybrid product consisting of the Company&#8217;s current Surface Select and Environment systems. The unit will allow for enhanced flexibility by using a single rotating applicator to decontaminate full-room to small-space volume with more robust process controls. In addition, this product will be smaller and lighter than its current Select model. We developed this product line in collaboration with Catalent. As Catalent has been working closely and directly with the TOMI Tech team, three location facilities already have purchase orders in approval with their procurement office. </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"><strong><em>The Transport CES:</em></strong></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 0px 0px 0in;text-indent:45px">The Transport CES has been designed for the transportation market, specifically ambulances and boxed EMS vehicles. The Transport CES is a simple 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. We believe the implementation of this product and our patented non-corrosive iHP technology should replace the number one competitor in this marketplace, which uses an extremely harsh chemical. We expect this product to roll out during 2022 fiscal year. Currently, one of our large hospital healthcare system customers has budgeted to implement the Transport CES into their fleet of ambulances. </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 0px 0px 0in;text-indent:45px">This latest designed CES will use a 5-gallon container of BIT Solution. This is in addition to our original 55-gallon drums used by current CES customers. Our mobile units continue to use the 1-gallon BIT Solution containers sold in a case of 4, and for the SteraPak we use a 32-ounce bottle sold in a case of 8. TOMI logistics has also implemented a 10-liter bottle for the initial purchase by a top 5 global bio-pharmaceutical company we announced in early October 2021. All BIT Solution options remain secure and protected with our RFID reader and label during usage.</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"><strong><em>Supply Chain:</em></strong></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 0px 0px 0in;text-indent:45px">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-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Our financial position as of December 31, 2021 and 2020, respectively, was as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&#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="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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><td style="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,203,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 0in">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;">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><td style="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,199,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 0in">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;">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><td style="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,717,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 0in">Inventories, 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;">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><td style="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,782,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 0in">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;">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><td style="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;">421,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 0in">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;">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><td style="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;">389,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 0in">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;">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><td style="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;">199,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 0in">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%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,816,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,203,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 0in">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;">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><td style="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,364,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 0in">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;">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><td style="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,503,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 0px 0px 0in;text-indent:45px">During the year ended December 31, 2021, our debt and liquidity positions were affected by 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;">Net cash used in operations of approximately $3,825,000.</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;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Net cash used in investing activities $638,000.</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;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Gain upon debt extinguishment of $415,000.</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;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">Net proceeds from the sale of stock and warrants of $4,582,000</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"><strong><em>Results of Operations for the Year Ended December 31, 2021 Compared to the Year Ended December 31, 2020</em></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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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;">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;">25,028,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;">(17,274,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 0in">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;">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;">15,043,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;">(10,456,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 0px 0px 0in">Total Operating Expenses<sup> (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;">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;">10,534,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,023,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 0in">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;">(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;">4,509,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;">(9,433,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 0px 0px 0in">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;">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;">(40,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;">455,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 0in">Provision for (benefit from)&#160;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;">(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">)</p></td><td style="width:1%;white-space: 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;">77,000</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;">(151,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 0px 0px 0in">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;">(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%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">4,392,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%;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;">(8,827,000</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 0px 0px 0in">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.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.27</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;">(0.52</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 0in">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.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.23</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;">(0.48</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;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 $18,000 and $3,131,000 in non-cash equity compensation expense for the years ended December 31, 2021 and 2020, respectively.</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;">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 0px 0px 0in"><em>Sales</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 0px 0px 0in;text-indent:45px">During the years ended December&#160;31, 2021 and 2020, we had net revenue of approximately $7,754,000 and $25,028,000, respectively, representing a decrease in revenue of approximately $17,274,000. </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 0px 0px 0in;text-indent:45px">We experienced a significant decline in our revenue for the year ended December 31, 2021 as compared to the same prior year periods primarily due to the significant increase of demand caused by the onset of COVID-19 pandemic in the first half of 2020. We were positioned well to respond to the pandemic related spike in demand due to our inventory levels and increased production capacity, which led to substantial revenue growth in the first and second quarter of 2020. However, during the second half of 2020 and early 2021, many of our established vertical clients were closed or required to reduce operation due to the impact of COVID-19 pandemic on their businesses. The markets that were negatively affected included our life sciences clients that were nonessential, University and privately owned vivarium labs, and many nonessential pharmaceutical research companies globally. In addition, the healthcare industry has shifted virtually all of its focus and resources in response to the pandemic and therefore substantially reduced elective surgical and clinical related services, resulting in limited non-essential onsite personnel. These trends made it more difficult for us to demo our equipment and execute our sales and marketing strategies.</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 0px 0px 0in;text-indent:45px">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 subsides, 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, including continuing focus on cleaning and disinfection protocols of existing and new 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 0px 0px 0in"><em>Net Revenue</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 0px 0px 0in"><em>Product and Service 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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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,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;">22,971,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;">(16,792,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 0in">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,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;">2,057,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;">(482,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 0px 0px 0in">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;">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;">25,028,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;">(17,274,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><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">SteraMist product-based revenues for the years ended December 31, 2021 and 2020, were $6,179,000 and $22,971,000, representing a decrease of $16,792,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 0px 0px 0in;text-indent:45px">Our service-based revenue for the years ended December 31, 2021 and 2020, was $1,575,000 and $2,057,000, respectively, representing a year over year decrease of $482,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 0px 0px 0in"><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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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,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;">18,367,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,964,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 0in">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;">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;">6,661,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;">(5,310,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 0px 0px 0in">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;">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;">25,028,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;">(17,274,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;">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 0px 0px 0in;text-indent:45px">Our domestic revenue for the years ended December 31, 2021 and 2020, was $6,403,000 and $18,367,000, respectively, a decrease of $11,964,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 0px 0px 0in;text-indent:45px">Internationally, our revenue for the years ended December 31, 2021 and 2020, was approximately $1,351,000 and $6,661,000, respectively, representing a decrease of $5,310,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 0px 0px 0in"><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></td><td></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>For The Years Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31,</strong></p></td><td></td><td></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 0px 0px 0in; text-align:center;"><strong>Change </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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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,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;">9,985,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;">(6,818,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 0px 0px 0in;text-indent:45px">Cost of sales was $3,167,000 and $9,985,000 for the years ended December 31, 2021 and 2020, respectively, a decrease of $6,818,000, compared to the prior year. The primary reason for the decline in cost of sales is attributable to lower sales and revenue in the current year. Our gross profit as a percentage of sales for the years ended December 31, 2021 was 59.2% compared to 60.1% in the same prior period, respectively. The lower gross profit is attributable to the product mix in sales. In the prior year period and due to the pandemic, there was a higher concentration of solution-based revenue due to panic buying and hoarding of disinfection products by our clients as our solution sales carried a higher gross profit.</p><p style="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"><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: #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"><strong>For The Years Ended</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px"><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 0px 0px 0in; text-align:center;"><strong>Change </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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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;">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;">681,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;">(143,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 0px 0px 0in;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 0px 0px 0in;text-indent:45px">Professional fees were $538,000 and $681,000 for the years ended December 31, 2021 and 2020, respectively, a decrease of approximately $143,000 in the current year period. The decrease is attributable to additional professional fees in connection with the maintenance of our intellectual property that occurred in the same prior year period and legal costs incurred in connection with our up-listing to Nasdaq.</p><p style="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"><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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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;">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;">720,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;">(425,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 0px 0px 0in;text-indent:45px">Depreciation and amortization were approximately $295,000 and $720,000 for the years ended December 31, 2021 and 2020, respectively, representing a decrease of $425,000. The decline is due to intangible assets that became fully amortized in 2020 which has led to a lower amortization expense in the 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 0px 0px 0in"><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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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,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;">1,247,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;">427,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;">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 0px 0px 0in;text-indent:45px">Selling expenses for the year ended December 31, 2021 were approximately $1,674,000, as compared to $1,247,000 for the year ended December 31, 2020, representing an increase of approximately $427,000. The increase in selling expense is attributable to a higher employee headcount and the related increase in payroll as well as increased advertising and marketing costs incurred in the current year period. 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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><em>Research and Development</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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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;">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;">455,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;">118,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 0px 0px 0in;text-indent:45px">Research and development expenses for the year ended December 31, 2021 were approximately $573,000, as compared to $455,000 for the year ended December 31, 2020, representing an increase of approximately $118,000. The increase in research and development expenses is attributable to new product development and increased testing.</p><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"><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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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;">326,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;">(1,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 0px 0px 0in;text-indent:45px">Consulting fees were $326,000 and $327,000 for the years ended December 31, 2021 and 2020, 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-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></p><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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>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>2020</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">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;">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;">7,103,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;">(999,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 $6,104,000 and $7,103,000 for the years ended December 31, 2021 and 2020, respectively, a decrease &#160;of $999,000 in the current year period. The increase in general and administrative expense is primarily attributable to increase in our allowance for doubtful accounts receivable, higher insurance and listing fees associated with the up-listing to the Nasdaq Capital Market as well as a higher employee headcount resulting in an increase in wages.</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;">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 0px 0px 0in"><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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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;">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;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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></tr><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 0in">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;">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;">3,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;">(2,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 0px 0px 0in">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;">(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;">(44,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;">43,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 0px 0px 0in">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;">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;">(41,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;">456,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:45px">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 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Interest income was approximately $1,000 and $3,000 for the years ended December 31, 2021 and 2020, 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 0px 0px 0in;text-indent:45px">Interest expense was $1,000 and $44,000 for the years ended December 31, 2021 and 2020, 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 0px 0px 0in"><em>Provision for Income Taxes</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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">Provision for 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="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;">77,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;">(151,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 0px 0px 0in;text-indent:45px">Income tax benefit was $74,000 for the year ended December 31, 2020 and provision for income tax expense was $77,000 for the year ended December 31, 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 0in"><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; text-align:justify;">As of December 31, 2021, we had cash and cash equivalents of approximately $5,300,000 and working capital of $11,077,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 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">For the year ended December 31, 2021, we incurred a loss from operations of ($4,924,000) and for the year ended December 31, 2020, we generated income from operations of $4,509,000.&#160;Cash used in operations for the year ended December 31, 2021, was ($3,825,000). Cash provided from operations was $4,578,000 for the year ended December 31, 2020.</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;">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 0px 0px 0in;text-indent:45px">A breakdown of our statement of cash flows for the year ended December 31, 2021 and 2020 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 0px 0px 0in; text-align:center;"><strong>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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(3,825,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;">4,578,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 0in">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;">(638,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;">(401,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 0px 0px 0in">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;">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><td style="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;">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></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"><em>Operating 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 0px 0px 0in;text-indent:45px">Cash used in operating activities for the year ended December 31, 2021 was $3,825,000, compared to cash provided by operations for the year ended December 31, 2020 of $4,578,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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">Cash used in investing activities for the years ended December 31, 2021 and 2020 was $638,000 and $401,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 0px 0px 0in"><em>Financing 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 provided by financing activities for the years ended December 31, 2021 and 2020 was $4,582,000 and $124,000 respectively. The cash provided by financing activities increased as a result of the proceeds we received in connection with the sale of our common stock and warrants.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in;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 manufacturers&#8217; representatives;</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;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">global response to the outbreak of COVID-19 Pandemic;</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;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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 0px 0px 0in;text-indent:45px">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 0px 0px 0in;text-indent:45px">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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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 0px 0px 0in;text-indent:45px">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><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 0px 0px 0in;text-indent:45px">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:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Critical Accounting Policies and Estimates</em></strong></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 0px 0px 0in;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:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">The SEC defines critical accounting policies 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 policies 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-indent:45px">&#160;</p><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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"><strong><em>&#160;</em></strong>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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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><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"><span style="text-decoration:underline">Contract Balances</span></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 0px 0px 0in;text-indent:45px">As of December 31, 2021, and December 31, 2020 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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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">&#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:6%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Level 1:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Quoted prices in active markets for identical assets or liabilities.</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 0px 0px 0in">Level 2:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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></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 0px 0px 0in">Level 3:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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><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"><em>Accounts Receivable</em></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 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Inventories</em></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: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 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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.</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"><em>Property and Equipment</em></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;&#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:45px">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">Capitalized Software Development Costs</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 0px 0px 0in;text-indent:45px">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><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"><em>Accrued Warranties</em></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 Accounting Standards Codification (ASC) guidance for income taxes.</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"><em>Net Income (Loss) Per Share</em></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 0px 0px 0in;text-indent:45px">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:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em>Concentrations of Credit Risk</em></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 0px 0px 0in;text-indent:45px"><strong><em>&#160;</em></strong>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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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, 2021 and 2020.</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"><em>Recent Accounting Pronouncements</em></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 0px 0px 0in;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 0px 0px 0in;text-indent:27.75pt"><em>&#160;</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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 0px 0px 0in;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. The disclosure requirements can be applied either retrospectively or prospectively to all transactions in the scope of the amendments that are reflected in the financial statements at the date of initial application and new transactions that are entered into after the date of initial application. The 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 0px 0px 0in;text-indent:27.75pt"><em>Recently adopted accounting pronouncements</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:27.75pt"><em>&#160;</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:27.75pt">In December 2019, the FASB issued ASU No. 2019-12, Simplifying the Accounting for Income Taxes, as part of its initiative to reduce complexity in accounting standards. The amendments in the ASU include removing exceptions to incremental intraperiod tax allocation of losses and gains from different financial statement components, exceptions to the method of recognizing income taxes on interim period losses, and exceptions to deferred tax liability recognition related to foreign subsidiary investments. In addition, the ASU requires that entities recognize franchise tax based on an incremental method and requires an entity to evaluate the accounting for step-ups in the tax basis of goodwill as inside or outside of a business combination. We adopted ASU 2019-12 starting 2021, 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 0px 0px 0in;text-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Evaluation of Disclosure Controls and Procedures</strong></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">Based on that evaluation, our management has concluded that, as of as of December 31, 2021, our disclosure controls and procedures were not effective at the reasonable assurance level because we have identified a material weakness in our internal control over financial reporting as discussed below. .</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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">&#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 0px 0px 0in;text-indent:45px">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 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Our management conducted an evaluation of the effectiveness of our internal control over financial reporting based on the framework in Internal Control&#8212;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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Material Weakness 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:45px">A material weakness is a deficiency, or a combination of deficiencies, in internal control over financial reporting, such that there is a reasonable possibility that a material misstatement of the Company&#8217;s annual or interim financial statements will not be prevented or detected on a timely basis. Management have concluded that, as of December 31, 2021, we did not maintain effective controls over the preparation, review, presentation and disclosure of our financial statements relating to bad debt. Specifically, we noted the following</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">We did not design or maintain effective controls with respect to the review of the accounting for bad debt reserves, including maintaining effective controls to prevent or detect errors in the assessment of bad debt reserves. Specifically, our policy for bad debt reserves was primarily based on customer relationships and managements view of the collectability of the receivables. The bad debt expense analysis resulted in a material adjustment to accounts receivable and bad debt expense for the year ended December 31, 2021.</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;text-indent:30px">&#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"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">We did not maintain effective controls to identify and maintain segregation of duties to support the identification, authorization, approval, accounting for, and the disclosure of bad debt reserves.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:36pt">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">These control deficiencies did not result in a misstatement to our consolidated financial statements for the year ended December 31, 2021 following the adjustment to accounts receivable as discussed above. However, these control deficiencies, if not remediated, could result in a misstatement to the annual or interim consolidated financial statements which would result in a material misstatement of the annual or interim consolidated financial statements that would not be prevented or detected. Accordingly, our management has determined that these control deficiencies constitute material weaknesses. </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>Remediation 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:45px">Our management, with oversight from our Audit Committee, is in the process of developing and implementing remediation plans in response to the identified material weaknesses described above. Specifically, we are revising our bad debt reserve policy to consider the time of the balances outstanding along with the credit worthiness of the customer and revising our review and approval policies and procedures to include segregation of duties and approvals.</p><p style="font-size: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 believe the measures described above will remediate the control deficiencies we have identified and strengthen our internal control over financial reporting. We are committed to continuing to improve our internal control processes and will continue to review, optimize and enhance our financial reporting controls and procedures.</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>Changes in Internal Control Over Financial Reporting</strong></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 0px 0px 0in;text-indent:45px">During our most recent fiscal quarter, there have been no changes in our internal control over financial reporting that have materially affected or are reasonably likely to materially affect our internal control over financial reporting.</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><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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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;">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 0px 0px 0in; 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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Our directors and executive officers and their ages and positions as of March 8, 2022 are presented below.</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:25%;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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:10%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in">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 0px 0px 0in; text-align:center;">77</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 0px 0px 0in">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 0px 0px 0in">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 0px 0px 0in; text-align:center;">42</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 0px 0px 0in">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 0px 0px 0in">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 0px 0px 0in; text-align:center;">44</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 0px 0px 0in">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 0px 0px 0in">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 0px 0px 0in; text-align:center;">71</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 0px 0px 0in">Director</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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 0px 0px 0in; text-align:center;">54</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 0px 0px 0in">Director</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 0in">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 0px 0px 0in; text-align:center;">66</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 0px 0px 0in">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 0px 0px 0in;text-indent:45px"><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"><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">&#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 0px 0px 0in;text-indent:45px"><em>Dr. Lim Boh Soon</em>: Dr. Lim Boh Soon: Dr. Lim has served as a member of the Board since January 2018. Dr. Lim has more than 25 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 two publicly listed companies on the Singapore 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., Kairos Asia Outreach, and TML FinTech Pte. Ltd. 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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.</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>Audit Committee</strong></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 0px 0px 0in;text-indent:45px">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 0px 0px 0in;text-indent:45px">&#160;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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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">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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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">compliance with applicable governmental laws, rules and regulations;</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;">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><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">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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">The following table sets forth the total compensation paid to or earned by our named executive officers for the years ended December 31, 2021 and 2020, 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 0px 0px 0in; 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;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Salary</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Bonus</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Stock</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Awards</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Option/</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Warrant</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Awards</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>All Other</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Compensation</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Total</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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="white-space: nowrap;"><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">&#160;</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" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin: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:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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:7%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;">&#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:6%;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: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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Chairman and CEO (2)</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;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">2020</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">400,833</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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,835,090</td><td style="vertical-align:bottom;white-space: nowrap;">(2)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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,235,923</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="white-space: nowrap;"><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">&#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"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Elissa J. Shane (4)</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;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">2021</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">30,000</td><td style="vertical-align:bottom;white-space: nowrap;">(6)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">13,500</td><td style="vertical-align:bottom;white-space: nowrap;">(4)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">313,500</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 0px 0px 0in">COO</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;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">2020</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">226,083</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">40,000</td><td style="vertical-align:bottom;white-space: nowrap;">(6)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">226,950</td><td style="vertical-align:bottom;white-space: nowrap;">(4)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">13,500</td><td style="vertical-align:bottom;white-space: nowrap;">(4)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">506,533</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="white-space: nowrap;"><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">&#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"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Nick Jennings (5)</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;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">2021</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">20,000</td><td style="vertical-align:bottom;white-space: nowrap;">(6)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">195,000</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 0px 0px 0in">CFO</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;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">2020</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">165,225</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">50,000</td><td style="vertical-align:bottom;white-space: nowrap;">(6)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">24,846</td><td style="vertical-align:bottom;white-space: nowrap;">(5)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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;">&#8212;</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">240,071</td><td style="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;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">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">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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">During the year ended December 31, 2020, we issued Dr. Shane five and ten-year warrants to purchase an aggregate of 543,750 shares of common stock as executive compensation. The exercise price of the warrants range was $1.20-6.95 per share, based on the three-day trailing VWAP on the date of issuance. Utilizing the Black-Scholes pricing model, we determined the fair value of the warrants issued to Dr. Shane was approximately $2,835,000, with the following assumptions: volatility, 136%-173%; expected dividend yield, 0%; risk free interest rate, 0.67%-1.64%; and a life of 5-10 years. The grant date fair value of each share of common stock underlying the warrants range was $1.04-6.99. We recognized equity-based compensation to Dr. Shane of approximately $2,835,000 on the warrants during the year ended December 31, 2020 pursuant to an employment agreement. 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">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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">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">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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">(4)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">During the year ended December 31, 2020, we issued Ms. Shane a ten-year warrant to purchase an aggregate of 6,250 shares of common stock as executive compensation. The exercise price of the warrant was $4.00 per share. Utilizing the Black-Scholes pricing model, we determined the fair value of the warrants issued to Ms. Shane was approximately $25,000, with the following assumptions: volatility, 173%; expected dividend yield, 0%; risk free interest rate, 0.68%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrants was $4.00. During the year ended December 31, 2020, we issued Ms. Shane&#8217;s options to purchase an aggregate of 31,250 shares of common stock as executive compensation. The exercise price of the option was $7.06 per share. Utilizing the Black-Scholes pricing model, we determined the fair value of the option issued to Ms. Shane was approximately $202,000, with the following assumptions: volatility, 154%; expected dividend yield, 0%; risk free interest rate, 0.67%; and a life of 5 years. The grant date fair value of each share of common stock underlying the options was $6.47. In aggregate, we recognized equity-based compensation to Ms. Shane of approximately $227,000 on the options during the year ended December 31, 2020. 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">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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">(5)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">During the year ended December 31, 2020, we issued Mr. Jennings a ten-year warrant to purchase an aggregate of 6,250 shares of common stock as executive compensation. The exercise price of the warrant was $4.00 per share. Utilizing the Black-Scholes pricing model, we determined the fair value of the warrants issued to Mr. Jennings was approximately $25,000, with the following assumptions: volatility, 173%; expected dividend yield, 0%; risk free interest rate, 0.68%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrants was $4.00. We recognized equity-based compensation to Mr. Jennings of approximately $25,000 on the options during the year ended December 31, 2020. 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">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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">(6)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">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;">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 0px 0px 0in"><strong>Outstanding Equity Awards at 2021 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:45px">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, 2020.</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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Securities</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Underlying</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Unexercised</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Warrants&#160;/</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Options</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Exercisable<sup>(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 0px 0px 0in; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Securities</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Underlying</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Unexercised</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Warrants&#160;/</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Options</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Unexercisable</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Equity</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Incentive</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Plan</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Awards:</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Number of</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Securities</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Underlying</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Unexercised</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Unearned</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Warrants</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Exercise</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Price<sup>(1)</sup></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Expiration</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">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;">31,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;"><sup>(3)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; text-align:center;">7/17/2022</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;">437,500</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;"><sup>(4)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; text-align:center;">12/22/2022</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;"><sup>(5)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; text-align:center;">11/19/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;">125,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;"><sup>(6)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; text-align:center;">1/26/2024</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;">156,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;"><sup>(7)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; 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;"><sup>(8)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; 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;"><sup>(9)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; text-align:center;">10/01/2030</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 0px 0px 0in">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;"><sup>(10)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; 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;"><sup>(11)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; 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;"><sup>(12)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; 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;"><sup>(13)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; 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;"><sup>(14)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; 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;"><sup>(15)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; text-align:center;">10/1/2025</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 0px 0px 0in">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;"><sup>(16)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; text-align:center;">1/26/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;">6,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;"><sup>(17)</sup></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in; text-align:center;">4/24/2030</p></td><td style="width:1%;">&#160;</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">________________</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 in increments of 125,000 on February 11, 2014, February 11, 2015, and February 11, 2016 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 vested on July 17, 2017 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">(4)</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 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">(5)</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 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">(6)</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 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">(7)</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">(8)</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">(9)</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">(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 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">(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, 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">(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 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">(13)</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">(14)</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">(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 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">(16)</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">(17)</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></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"><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 0px 0px 0in;text-indent:45px">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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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;">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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><em><span style="text-decoration:underline">Nick Jennings</span></em></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 0px 0px 0in;text-indent:45px">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;">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><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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, 2021.</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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Fees&#160;earned or</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>paid in cash</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Stock </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>awards</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Option </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>awards</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Other </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Compensation</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Total</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">Harold W. Paul (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;">33,333</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">52,625</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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;">99,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;">132,333</td><td style="width:1%;white-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 0in">Walter Johnsen (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;">40,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;">52,625</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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;">92,625</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">Kelly Anderson (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;">45,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;">52,625</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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;">97,625</td><td style="width:1%;white-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 0in">Lim Boh Soon (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;">40,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;">52,625</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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;">92,625</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;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">Mr. Paul also received $99,000 in cash compensation in exchange for legal services rendered during 2021. In January 2021, we issued Mr. Paul 12,500 shares of common stock that were valued at $52,625.&#160;Mr. Paul resigned from his position as a director with the company on August 2, 2021.</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;text-indent:30px">&#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">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 $40,000 paid on a quarterly basis and an annual grant of shares of common stock. In January 2021, we issued Mr. Johnsen 12,500 shares of common stock that were valued at $52,625.</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;text-indent:30px">&#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">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 $45,000 paid on a quarterly basis and an annual grant of shares of common stock. In January 2021, we issued Ms. Anderson 12,500 shares of common stock that were valued at $52,625.</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;text-indent:30px">&#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">(4)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Mr. Lim was elected to the Board on January 29, 2018.&#160;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&#160;removal.&#160;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 $40,000 paid on a quarterly basis and an annual grant of shares of common stock.&#160;In January 2021, we issued Mr. Lim 12,500 shares of common stock that were valued at $52,625.</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 0px 0px 0in"><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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>Equity Compensation Plan 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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">The following table provides information as of December 31, 2021 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">&#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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Number of securities to be&#160;issued upon exercise of outstanding options, warrants and rights<sup>(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 0px 0px 0in; text-align:center;"><strong>Weighted-average exercise price of outstanding options, warrants and rights<sup>(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 0px 0px 0in; text-align:center;"><strong>Number of securities remaining available for future issuance under equity compensation plans<sup>(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 0px 0px 0in">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;">143,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;"><sup>(2)</sup></td><td style="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;">1,599,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;"><sup>(4)</sup></td></tr><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 0in">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;">940,625</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"><sup>(3)</sup></td><td style="width:1%;white-space: 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 0px 0px 0in">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,073,125</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;">3.79</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><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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">Prior to August 25, 2015, we granted awards under the 2008 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;text-indent:30px">&#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">Represents shares of common stock issuable upon the exercise of warrants issued to executive officers, employees and consultants in exchange for services rendered.</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;text-indent:30px">&#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">(4)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">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></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"><strong>Security Ownership of Certain Beneficial Owners and Management</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: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 February 25, 2022 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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">&#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"><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 0px 0px 0in;text-indent:45px">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><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 0px 0px 0in;text-indent:45px">Applicable percentage ownership is based on 16,811,513 shares of common stock and 63,750 shares of Series A preferred stock outstanding at February 25, 2022.&#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 February 25, 2022.&#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">&#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 0px 0px 0in; 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"><strong>% of Total </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: #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 0px 0px 0in; 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" 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 0px 0px 0in; text-align:center;"><strong>Series A Preferred 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:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Voting </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;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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">&#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 0px 0px 0in; 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:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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">&#160;</p></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 0px 0px 0in; 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:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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">&#160;</p></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 0px 0px 0in; text-align:center;"><strong>Power<sup>(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 0px 0px 0in"><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 0px 0px 0in">Lau Sok Huy<sup>(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;">11.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;">&#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;">11.0</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 0in"><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 0px 0px 0in">Halden S. Shane<sup>(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,052,664</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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;">21.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 0px 0px 0in">Elissa J. Shane<sup>(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;">437,664</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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.1</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.0</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 0in">Nick Jennings<sup>(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;">79,019</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">Walter Johnsen<sup>(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;">68,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></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">Kelly Anderson<sup>(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;">68,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></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">Lim Boh Soon<sup>(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;">123,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></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">Executive Officers and Directors as a Group <sup>(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;">4,830,620</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">22.6</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;">22.9</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><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">*</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Denotes ownership of less than 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">(1)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">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></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;text-indent:30px">&#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">Based on Form 3 filed with the SEC by Lau Sok Huy on January 24, 2018.</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;text-indent:30px">&#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">Consists of: (i) 2,523,914 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,341,250 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 February 25, 2022. 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></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;text-indent:30px">&#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">(4)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consists of: (i) 236,414 shares of Common Stock held of record by Ms. Shane; and (ii) 201,250 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 February 25, 2022.</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;text-indent:30px">&#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">(5)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consists of: (i) 26,519 shares of Common Stock held of record by Mr. Jennings; and (ii) 52,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 February 25, 2022.</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;text-indent:30px">&#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">(6)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consists of: (i) 68,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 February 25, 2022.</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;text-indent:30px">&#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">(7)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consists of: (i) 68,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 February 25, 2022.</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;text-indent:30px">&#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">(8)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consists of 123,774 shares of Common Stock held of record by Dr. Lim.</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;text-indent:30px">&#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">(9)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consists of: (i) 3,229,370 shares of Common Stock; (ii) 1,181,250 shares of Common Stock issuable upon the exercise of warrants to purchase Common Stock; and (iii) 420,000 shares of Common Stock issuable upon exercise of stock options that are exercisable or will become exercisable within 60 days of February 25, 2022.</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 0in"><strong>Changes in Control</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:45px">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;">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 0px 0px 0in"><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 0px 0px 0in"><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 0px 0px 0in;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 0px 0px 0in"><strong>Independence of the Board</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: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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Item 14. &#160;&#160;&#160;&#160;&#160;&#160; PRINCIPAL ACCOUNTING FEES AND SERVICES</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 August 30, 2021, the Audit Committee of the Company determined that it is in the best interest of the Company to change the Company&#8217;s independent registered public accounting firm, Wolinetz, Lafazan &amp; Company, P.C. (&#8220;Wolinetz, Lafazan &amp; Company&#8221;), because the lead partner announced his decision to resign for personal reasons, and the firm would no longer have sufficient resources to continue to serve as the Company&#8217;s independent registered public accounting firm. Accordingly, the Audit Committee terminated the engagement of Wolinetz, Lafazan &amp; Company, effective as of August 30, 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-indent:0.5in">The reports of Wolinetz, Lafazan &amp; Company on the Company&#8217;s consolidated financial statements as of and for the fiscal years ended December 31, 2020 and 2019 did not contain an adverse opinion or a disclaimer of opinion, and were not qualified or modified as to uncertainty, audit scope or accounting principle.</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;">During two fiscal years ended December 31, 2020 and the subsequent interim period through August [30], 2021, there were no disagreements as described under Item 304(a)(1)(iv) of Regulation S-K with Wolinetz, Lafazan &amp; Company on any matter of accounting principles or practices, financial statement disclosure, or auditing scope or procedure, which disagreements, if not resolved to Wolinetz, Lafazan &amp; Company&#8217;s satisfaction, would have caused Wolinetz, Lafazan &amp; Company to make reference to the subject matter thereof in connection with its reports on the financial statements of the Company for such years. In addition, during the two fiscal years ended December 31, 2020 and the subsequent interim period through August 30, 2021, there were no reportable events as described under Item 304(a)(1)(v) of Regulation S-K.</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 Company has provided Wolinetz, Lafazan &amp; Company with a copy of a Current Report on Form 8-K announcing the resignation and appointment, and requested that Wolinetz, Lafazan &amp; Company furnish it with a letter addressed to the Securities and Exchange Commission stating whether or not it agrees with the above statements. A copy of Wolinetz, Lafazan &amp; Company&#8217;s letter, dated September 1, 2021, was attached hereto as Exhibit 16.1 to the Form 8-K.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; text-align:justify;">Effective as of August 30, 2021, the Audit Committee approved the engagement of Rosenberg Rich Baker Berman, P.A as the Company&#8217;s independent registered public accounting firm to audit the Company&#8217;s consolidated financial statements as of and for the year ending December 31, 2021 subject to Rosenberg Rich Baker Berman, P.A. completion of its standard client acceptance procedures. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 0.5in; 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 years ended December 31, 2020 and December 31, 2019 and the subsequent interim period through August 30, 2021, the Company did not consult with Rosenberg Rich Baker Berman, P.A. with respect to (i) the application of accounting principles to a specified transaction, either completed or proposed, the type of audit opinion that might be rendered on our financial statements, and neither a written report nor oral advice was provided to us by Rosenberg Rich Baker Berman, P.A. that was an important factor considered by us in reaching a decision as to any accounting, auditing or financial reporting issue, or (ii) any other matter that was the subject of a disagreement or a &#8220;reportable event.&#8221; </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;">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>Accountant Fees</strong></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 0px 0px 0in;text-indent:45px">The following table presents the aggregate fees billed for audit and other services provided by our independent registered public accounting firms, Wolinetz, Lafazan &amp; Company and and Rosenberg Rich Baker Berman, P.A, during the 2021 and 2020 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 0px 0px 0in; text-align:center;"><strong>For the Fiscal Years </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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><td style="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;">138,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 0in">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 0px 0px 0in">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 0px 0px 0in">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 0px 0px 0in">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;">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><td style="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;">138,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;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">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></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;text-indent:30px">&#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">Audit-Related Fees- Audit-related fees represent professional services rendered for assurance and related services by Wolinetz, Lafazan &amp; Company, P.C. and&#160;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></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;text-indent:30px">&#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">Tax Fees- Tax fees represent professional services rendered by the accounting firm for tax compliance, tax advice, and tax planning.</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;text-indent:30px">&#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">(4)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">All Other Fees- All other fees represent fees billed for products and services provided by Wolinetz, Lafazan &amp; Company, P.C and&#160;Rosenberg Rich Baker Berman, P.A other than the services reported for the other categories.</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 0in"><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:45px">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;">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><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="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 0px 0px 0in"><strong><span class="atag" style="display: inline" id="i15">Item&#160;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;text-indent:30px">&#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">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;text-indent:30px">&#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><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 0px 0px 0in; 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:45px">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 0px 0px 0in">DATED: March 29, 2022</p></td><td style="width:35%;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">TOMI ENVIRONMENTAL SOLUTIONS, INC.</p></td><td style="width:15%;"><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></tr><tr style="height:15px"><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/ 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 0px 0px 0in; 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></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:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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:45px">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 0in; text-align:center;"><strong>Signature</strong></p></td><td style="width:5%;"><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 0px 0px 0in; text-align:center;"><strong>Title</strong></p></td><td style="width:5%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: #000000 1px solid;width:15%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Date</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><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;">/s/ 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 0px 0px 0in">Chairman of the Board and Chief Executive </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 0px 0px 0in; text-align:center;">March 29, 2022</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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">Officer (Principal Executive Officer)</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 0px 0px 0in; text-align:center;">/s/ 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 0px 0px 0in">Chief Financial Officer (Principal Financial </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 0px 0px 0in; text-align:center;">March 29, 2022</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">Officer and Principal Accounting Officer)</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 0px 0px 0in; text-align:center;">/s/ 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 0px 0px 0in">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 0px 0px 0in; text-align:center;">March 29, 2022</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;">/s/ WALTER C. JOHNSEN</p></td><td style="width:5%;"><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 0px 0px 0in">Director</p></td><td style="width:5%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:15%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">March 29, 2022</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;">/s/ KELLY J. ANDERSON</p></td><td style="width:5%;"><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 0px 0px 0in">Director</p></td><td style="width:5%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:15%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">March 29, 2022</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;">/s/ LIM BOH SOON</p></td><td style="width:5%;"><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 0px 0px 0in">Director</p></td><td style="width:5%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:15%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">March 29, 2022</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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><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;">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 0px 0px 0in; text-align:center;"><strong><span class="atag" style="display: inline" id="ei">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:8%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Exhibit </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>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 0px 0px 0in; 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:8%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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:8%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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:8%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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:8%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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:8%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Filed </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><a href="tomz_ex42.htm">4.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 0px 0px 0in"><a href="tomz_ex42.htm">Description of Registrants 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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;">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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495420013112/tomi_def14a.htm">Amended and Restated 2016 Equity Incentive Plan, as adopted by the Registrant&#8217;s stockholders on December 30, 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495416003975/tomi_ex101.htm">10.7</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 0px 0px 0in"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495416003975/tomi_ex101.htm">Restated Manufacturing and Development Agreement, dated November 10, 2016, by and between the Registrant and RG Group</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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><a href="http://www.sec.gov/Archives/edgar/data/314227/000165495421010492/tomz_ex101.htm">10.9</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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in"><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:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in"><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:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in"><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:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in"><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></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;">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><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px;background-color:#cceeff"><td style="width:8%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">101.INS</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:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">XBRL Instance Document</p></td><td style="width:1%;"><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; 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="width:8%;"><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="width:8%;"><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="width:8%;"><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="width:8%;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 0px 0px 0in; 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 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in">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%;"><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 0px 0px 0in">+</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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><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 0px 0px 0in">#</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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">&#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;">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 0px 0px 0in; text-align:center;"><strong><span class="atag" style="display: inline" id="fs1">TOMI ENVIRONMENTAL SOLUTIONS, INC.</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;"><strong><span class="atag" style="display: inline" id="toc1">INDEX TO CONSOLIDATED FINANCIAL STATEMENTS</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong>&#160;</strong></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:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Page</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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#rp">Report of Independent Registered Public Accounting Firms [PCAOB No. <ix:nonNumeric contextRef="From2021-01-01to2021-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 0px 0px 0in; text-align:right;">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 0px 0px 0in"><a href="#bs">Consolidated Balance Sheets as of December&#160;31, 2021 and 2020</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 0px 0px 0in; text-align:right;">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 0px 0px 0in"><a href="#op">Consolidated Statements of Operations for the Years Ended December&#160;31, 2021 and 2020</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 0px 0px 0in; text-align:right;">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 0px 0px 0in"><a href="#sr">Consolidated Statements of Shareholders&#8217; Equity for the Years Ended December&#160;31, 2021 and 2020</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 0px 0px 0in; text-align:right;">F-7</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 0in"><a href="#cf">Consolidated Statements of Cash Flows for the Years Ended December&#160;31, 2021 and 2020</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 0px 0px 0in; text-align:right;">F-8</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 0px 0px 0in"><a href="#fs">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 0px 0px 0in; text-align:right;">F-10</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="#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="rp">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</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;">To the Board of Directors and</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Stockholders of TOMI Environmental Solutions, Inc.</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>Opinion on the Financial Statements</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;">We have audited the accompanying consolidated balance sheet of TOMI Environmental Solutions, Inc. (the Company) as of year ended December 31, 2021, and the related consolidated statements of operations, shareholders&#8217; equity, and cash flow for the year then ended, and the related notes (collectively referred to as the consolidated 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, 2021 and the results of its operations and its cash flows for the year then ended, 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; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Basis for Opinion</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">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 audit. 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; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">We conducted our audit 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 audit, 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; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px">Our audit 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 audit 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 audit provides a reasonable basis for our opinion.</p><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:justify;"><strong>Critical Audit Matters</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;">The critical audit matter communicated below is a matter arising from the current period audit of the consolidated financial statements that was communicated or required to be communicated to the audit committee and that: (1) relates to accounts or disclosures that are material to the consolidated financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of a critical audit matter does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matter below, providing a separate opinion on the critical audit matter or on the accounts or disclosures to which it relates.</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>Allowance for doubtful accounts</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-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, 2021, the allowance for doubtful accounts was $1.7 million, or 47% 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; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; 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 a high degree of subjectivity in assessing the assumptions, 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; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; 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; 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;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Testing the mathematical accuracy of management&#8217;s allowance for doubtful accounts calculation as of December 31, 2021 by recalculating the historical loss rates for each risk pool, as well as recalculating the aging of receivables based on underlying source documentation.</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;text-indent:30px">&#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"><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">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,</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;text-indent:30px">&#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"><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">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.</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;">/s/ <ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:AuditorName">Rosenberg Rich Baker Berman, P.A.</ix:nonNumeric></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;">We have served as the Company&#8217;s auditor since 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;"><ix:nonNumeric contextRef="From2021-01-01to2021-12-31" name="dei:AuditorLocation">Somerset, New Jersey</ix:nonNumeric></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">March 29, 2022</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;">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="#toc1">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;">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</p><p style="font-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;">To the Shareholders and Board of Directors of&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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; 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; text-align:justify;">We have audited the accompanying consolidated balance sheet of TOMI Environmental Solutions, Inc. and Subsidiary (the &#8220;Company&#8221;) as of December 31, 2020, and the related consolidated statements of operations, shareholders&#8217; equity and cash flows for the year then ended and the related notes (collectively referred to as the &#8220;consolidated financial statements&#8221;). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company as of December 31, 2020, and the results of its operations and its cash flows for the year ended December 31, 2020, 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; 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; 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 audit. 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; text-align:justify;">We conducted our audit 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 audit, 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; text-align:justify;">Our audit 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 audit 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 audit provides 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; 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; text-align:justify;">Critical audit matters 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.&#160; The communication of critical audit matters does not alter in any way our opinion on the consolidated 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><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;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">F-3</p></td></tr><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#toc1">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>Revenue Recognition &#8212; Refer to Note 2 to 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; text-align:justify;"><em>Critical Audit Matter Description</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;">The Company generates revenue primarily from the manufacture, license, service and sale of its products.&#160; The Company&#8217;s contracts with customers may include multiple performance obligations.&#160; The Company enters into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.&#160; Management applies significant judgment in identifying and accounting for each performance obligation as a result of evaluating terms and conditions in contracts. The principal considerations for our determination that performing procedures relating to revenue recognition is a critical audit matter include 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;">Determination of whether products and services are considered distinct performance obligations that should be accounted for separately versus together.</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;text-indent:30px">&#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"><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 pattern of delivery (i.e., timing of when revenue is recognized) for each distinct performance obligation.</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;text-indent:30px">&#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"><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;">Identification of specific or key contract terms that may impact the timing and amount of revenue recognized.</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;">Given these factors and due to the volume of transactions, the related audit effort in evaluating management&#8217;s judgments in determining revenue recognition for these customer agreements was extensive and required a high degree of auditor judgment.</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>How the Critical Audit Matter Was Addressed in the Audit</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;">Addressing the matter involved performing procedures and evaluating audit evidence in connection with forming our overall opinion on the consolidated financial statements.&#160; The primary procedures we performed to address this critical audit matter included 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;">Considering the effectiveness of controls relating to the revenue recognition process, including controls over the identification and evaluation of the contractual terms and conditions that impact the identification of performance obligations and determination of revenue recognition.</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;text-indent:30px">&#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"><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;">Testing the completeness and accuracy of management&#8217;s identification and evaluation of the terms and conditions in contracts with customers by examining customer agreements on a test basis including reviewing and evaluating management&#8217;s identification of performance obligations.</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;">WOLINETZ, LAFAZAN &amp; COMPANY, P.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; text-align:justify;">We have served as the Company's auditor since 2004.&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Rockville Centre, NY</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">March 30, 2021</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;">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="#toc1">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 colspan="4" style="width:90%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p></td></tr><tr style="height:15px"><td colspan="4" style="width:90%;"><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="bs">&#160;CONSOLIDATED BALANCE SHEET</span>S</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: #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 0px 0px 0in; 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><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>December 31, 2020(1)</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="9" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>ASSETS</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 0px 0px 0in">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 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 0in">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_3" 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><td style="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_4" contextRef="AsOf2020-12-31" name="us-gaap:CashEquivalentsAtCarryingValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">5,198,842</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 0in">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_5" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_6" contextRef="AsOf2020-12-31" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,716,701</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 0in">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_7" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_8" contextRef="AsOf2020-12-31" name="us-gaap:OtherReceivablesNetCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">198,951</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 0in">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_9" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_10" contextRef="AsOf2020-12-31" name="us-gaap:InventoryNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,781,515</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 0in">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_11" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_12" contextRef="AsOf2020-12-31" name="us-gaap:DepositsAssetsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">388,712</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 0in">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_13" 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><td style="width:1%;white-space: 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_14" contextRef="AsOf2020-12-31" name="us-gaap:PrepaidExpenseCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">421,305</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">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_15" 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><td style="width:1%;white-space: 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_16" contextRef="AsOf2020-12-31" name="us-gaap:AssetsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">13,706,027</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 0px 0px 0in">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_17" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_18" contextRef="AsOf2020-12-31" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,298,103</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 0px 0px 0in">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 0px 0px 0in">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_20" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_21" contextRef="AsOf2020-12-31" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:numdotdecimal" decimals="0" unitRef="USD">722,916</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 0in">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_22" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_23" contextRef="AsOf2020-12-31" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:numdotdecimal" decimals="0" unitRef="USD">631,527</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 0in">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_24" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_25" contextRef="AsOf2020-12-31" name="us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" format="ixt:numdotdecimal" decimals="0" unitRef="USD">52,377</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 0in">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_26" contextRef="AsOf2021-12-31" name="us-gaap:OtherAssetsCurrent" 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><td style="width:1%;white-space: 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_27" contextRef="AsOf2020-12-31" name="us-gaap:OtherAssetsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">358,935</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 15px">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_28" 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><td style="width:1%;white-space: 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_29" contextRef="AsOf2020-12-31" name="us-gaap:OtherAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,765,755</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 0in">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_30" 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><td style="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_31" contextRef="AsOf2020-12-31" name="us-gaap:Assets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">16,769,885</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 0px 0px 0in; text-align:center;"><strong>&#160;LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</strong></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 0px 0px 0in">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:#cceeff"><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_34" 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><td style="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_35" contextRef="AsOf2020-12-31" name="us-gaap:AccountsPayableCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,501,469</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">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_36" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_37" contextRef="AsOf2020-12-31" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">501,849</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">Customer 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_38" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_39" contextRef="AsOf2020-12-31" name="us-gaap:CustomerDepositsCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">118,880</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">Current Portion of Long-Term Operating Lease (Note 7)&#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="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_40" 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><td style="width:1%;white-space: 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_41" contextRef="AsOf2020-12-31" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">81,223</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="MARGIN: 0px 0px 0px 30px;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_42" 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><td style="width:1%;white-space: 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_43" contextRef="AsOf2020-12-31" name="us-gaap:LiabilitiesCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,203,421</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 0px 0px 15px">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Loan Payable (Note 15)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_45" contextRef="AsOf2021-12-31" name="us-gaap:LongTermLoansPayable" 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_46" contextRef="AsOf2020-12-31" name="us-gaap:LongTermLoansPayable" format="ixt:numdotdecimal" decimals="0" unitRef="USD">410,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:#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_47" 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><td style="width:1%;white-space: 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_48" contextRef="AsOf2020-12-31" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">953,190</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_49" 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><td style="width:1%;white-space: 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_50" contextRef="AsOf2020-12-31" name="us-gaap:LiabilitiesNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,363,890</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_51" 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><td style="width:1%;white-space: 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_52" contextRef="AsOf2020-12-31" name="us-gaap:Liabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,567,311</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:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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 0in">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:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 30px; text-align:left;">Cumulative Convertible Series A Preferred Stock; par value $<ix:nonFraction id="fid_82" contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember" name="us-gaap:PreferredStockParOrStatedValuePerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.01</ix:nonFraction> per share, <ix:nonFraction id="fid_87" contextRef="AsOf2021-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_92" contextRef="AsOf2021-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, 2021 and December 31, 2020</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_68" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_69" contextRef="AsOf2020-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:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 30px; text-align:left;">Cumulative Convertible Series B Preferred Stock; $1,000 stated value; 7.5% Cumulative dividend; <ix:nonFraction id="fid_88" contextRef="AsOf2021-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, 2021 and December 31, 2020</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_70" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_71" contextRef="AsOf2020-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:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 30px; text-align:left;">Common stock; par value $<ix:nonFraction id="fid_74" contextRef="AsOf2021-12-31" name="us-gaap:CommonStockParOrStatedValuePerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.01</ix:nonFraction> per share, <ix:nonFraction id="fid_76" contextRef="AsOf2021-12-31" name="us-gaap:CommonStockSharesAuthorized" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">250,000,000</ix:nonFraction> shares authorized; <ix:nonFraction id="fid_77" contextRef="AsOf2021-12-31" name="us-gaap:CommonStockSharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,680,955</ix:nonFraction> and <ix:nonFraction id="fid_78" contextRef="AsOf2020-12-31" name="us-gaap:CommonStockSharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">16,761,513</ix:nonFraction> shares issued and outstanding at December 31, 2021 and December 31, 2020, 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_54" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_55" contextRef="AsOf2020-12-31" name="us-gaap:CommonStockValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">167,615</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">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_56" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_57" contextRef="AsOf2020-12-31" name="us-gaap:AdditionalPaidInCapital" format="ixt:numdotdecimal" decimals="0" unitRef="USD">52,142,399</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">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_58" contextRef="AsOf2021-12-31" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">43,543,576</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_59" contextRef="AsOf2020-12-31" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">39,108,078</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 0px 0px 30px">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_60" 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><td style="width:1%;white-space: 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_61" contextRef="AsOf2020-12-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">13,202,574</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="MARGIN: 0px;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_66" 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><td style="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_67" contextRef="AsOf2020-12-31" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">16,769,885</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><p style="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">The accompanying notes are an integral part of the consolidated financial statements.</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">(1)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Share amounts with respect to the common stock and Convertible Series A Preferred Stock have been retroactively restated to reflect the reverse split thereof, which was effected as of the close of business on September 10, 2020. Refer to Note 10&#8212;Equity for further information.</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="#toc1">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 colspan="6" style="width:85%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p></td></tr><tr style="height:15px"><td colspan="6" style="width:85%;"><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="op">CONSOLIDATED STATEMENTS OF OPERATIONS</span></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" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020 (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></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_508" 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><td style="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_509" contextRef="From2020-01-01to2020-12-31" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">25,027,637</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_510" 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><td style="width:1%;white-space: 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_511" contextRef="From2020-01-01to2020-12-31" name="us-gaap:CostOfRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">9,985,046</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_512" 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><td style="width:1%;white-space: 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_513" contextRef="From2020-01-01to2020-12-31" name="us-gaap:GrossProfit" format="ixt:numdotdecimal" decimals="0" unitRef="USD">15,042,591</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 0px 0px 0in">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_515" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_516" contextRef="From2020-01-01to2020-12-31" name="us-gaap:ProfessionalFees" format="ixt:numdotdecimal" decimals="0" unitRef="USD">681,377</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_517" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_518" contextRef="From2020-01-01to2020-12-31" name="us-gaap:DepreciationAndAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">719,760</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_519" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_520" contextRef="From2020-01-01to2020-12-31" name="us-gaap:SellingExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,247,444</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_521" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_522" contextRef="From2020-01-01to2020-12-31" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">455,046</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_525" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_526" contextRef="From2020-01-01to2020-12-31" name="tomz:ConsultingFees" format="ixt:numdotdecimal" decimals="0" unitRef="USD">327,232</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;"><p style="font-size:10pt;font-family:times new roman;margin:0px">6,104,363</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:9%;vertical-align:bottom;text-align:right;"><p style="font-size:10pt;font-family:times new roman;margin:0px">7,102,942</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></tr><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_529" 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><td style="width:1%;white-space: 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_530" contextRef="From2020-01-01to2020-12-31" name="us-gaap:OperatingExpenses" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,533,801</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 0in">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_531" 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><td style="width:1%;white-space: 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_532" contextRef="From2020-01-01to2020-12-31" name="us-gaap:OperatingIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,508,789</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 0px 0px 0in">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_534" contextRef="From2021-01-01to2021-12-31" name="us-gaap:GainsLossesOnExtinguishmentOfDebt" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_535" contextRef="From2020-01-01to2020-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></tr><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_536" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_537" contextRef="From2020-01-01to2020-12-31" name="us-gaap:InterestIncomeOther" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,915</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_538" 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><td style="width:1%;white-space: 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_539" contextRef="From2020-01-01to2020-12-31" name="us-gaap:InterestExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">43,538</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_540" 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><td style="width:1%;white-space: 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_541" contextRef="From2020-01-01to2020-12-31" name="us-gaap:NonoperatingIncomeExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">40,623</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 0px 0px 0in">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_542" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_543" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,468,166</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 0in">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_544" 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><td style="width:1%;white-space: 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_545" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:numdotdecimal" decimals="0" unitRef="USD">77,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 0px 0px 0in">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_546" 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><td style="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_547" contextRef="From2020-01-01to2020-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,391,166</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 0px 0px 0in">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 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_549" 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><td style="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_550" contextRef="From2020-01-01to2020-12-31" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.27</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 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_551" 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><td style="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_552" contextRef="From2020-01-01to2020-12-31" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.23</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 0px 0px 0in">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_553" 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><td style="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_554" contextRef="From2020-01-01to2020-12-31" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">16,512,126</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 0px 0px 0in">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_555" 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><td style="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_556" contextRef="From2020-01-01to2020-12-31" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">18,757,509</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><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">(1)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Share amounts with respect to the common stock and Convertible Series A Preferred Stock have been retroactively restated to reflect the reverse split thereof, which was effected as of the close of business on September 10, 2020. Refer to Note 10&#8212;Equity for further information.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">The accompanying notes are an integral part of the consolidated financial statements.</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;">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="#toc1">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 0px 0px 0in; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</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 0px 0px 0in; text-align:center;"><strong><span class="atag" style="display: inline" id="sr">CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>FOR THE YEARS ENDED DECEMBER 31, 2021 AND 2020 <sub>(1)</sub></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 0px 0px 0in; 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 0px 0px 0in; 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 </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Paid </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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Total 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: #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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>in&#160;Capital</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 0px 0px 0in; text-align:center;"><strong>Deficit</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 0px 0px 0in; text-align:center;"><strong>Equity </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><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><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><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><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 0px 0px 0in">Balance at January 1, 2020</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width: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_1010" 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_985" contextRef="AsOf2019-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_984" contextRef="AsOf2019-12-31_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">15,587,552</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_986" contextRef="AsOf2019-12-31_us-gaap_CommonStockMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">155,876</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_987" contextRef="AsOf2019-12-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">44,232,274</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_988" contextRef="AsOf2019-12-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">43,499,244</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_989" contextRef="AsOf2019-12-31" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">889,543</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 0px 0px 0in">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_990" contextRef="From2020-01-01to2020-12-31_us-gaap_AdditionalPaidInCapitalMember" name="tomz:EquityCompensation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,158,175</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_991" contextRef="From2020-01-01to2020-12-31" name="tomz:EquityCompensation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,158,175</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 0in">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_992" contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember" name="tomz:CommonStockIssuedForServicesProvidedShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">50,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_993" contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember" name="tomz:CommonStockIssuedForServicesProvidedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">505</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_994" contextRef="From2020-01-01to2020-12-31_us-gaap_AdditionalPaidInCapitalMember" name="tomz:CommonStockIssuedForServicesProvidedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">49,685</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_995" contextRef="From2020-01-01to2020-12-31" name="tomz:CommonStockIssuedForServicesProvidedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">50,190</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 0in">Conversion of Notes Payable into Common 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="width: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_996" contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember" name="tomz:ConversionOfNotesPayableIntoCommonStockShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,041,667</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_997" contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember" name="tomz:ConversionOfNotesPayableIntoCommonStockAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,417</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_998" contextRef="From2020-01-01to2020-12-31_us-gaap_AdditionalPaidInCapitalMember" name="tomz:ConversionOfNotesPayableIntoCommonStockAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,489,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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width: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_999" contextRef="From2020-01-01to2020-12-31" name="tomz:ConversionOfNotesPayableIntoCommonStockAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,500,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 0in">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_1000" contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember" name="tomz:WarrantsAndOptionsExercisedShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">79,296</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_1001" contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember" name="tomz:WarrantsAndOptionsExercisedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">793</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_1002" contextRef="From2020-01-01to2020-12-31_us-gaap_AdditionalPaidInCapitalMember" name="tomz:WarrantsAndOptionsExercisedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">212,707</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_1003" contextRef="From2020-01-01to2020-12-31" name="tomz:WarrantsAndOptionsExercisedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">213,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 0px 0px 0in">Reverse stock split adjustment </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width: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_1004" contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember" name="tomz:ReverseStockSplitAdjustmentShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,499</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_1005" contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember" name="tomz:ReverseStockSplitAdjustmentAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">25</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_1006" contextRef="From2020-01-01to2020-12-31_us-gaap_AdditionalPaidInCapitalMember" name="tomz:ReverseStockSplitAdjustmentAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">25</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: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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Net 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="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_1008" contextRef="From2020-01-01to2020-12-31_us-gaap_RetainedEarningsMember" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,391,166</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_1009" contextRef="From2020-01-01to2020-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,391,166</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 0in">Balance at December 31, 2020</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width: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_1029" contextRef="AsOf2021-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_1012" 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_1011" 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_1013" 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_1014" contextRef="AsOf2020-12-31_us-gaap_AdditionalPaidInCapitalMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD">52,142,399</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_1015" 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_1016" 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%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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 0in">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_1017" 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_1018" 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 0px 0px 0in">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_1019" 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_1020" 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_1021" 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_1022" 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 0px 0px 0in">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_1023" 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_1024" 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_1025" 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_1026" 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 0px 0px 0in">Net (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_1027" 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_1028" 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 0px 0px 0in">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: 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_1036" contextRef="AsOf2019-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%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1031" 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: 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_1030" contextRef="AsOf2021-12-31_us-gaap_CommonStockMember" name="us-gaap:SharesIssued" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">19,680,955</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:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1032" 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: 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:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1033" 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: 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:6%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1034" contextRef="AsOf2021-12-31_us-gaap_RetainedEarningsMember" name="us-gaap:StockholdersEquity" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">43,543,576</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:6%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1035" 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: 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;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">(1)</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Share amounts with respect to the common stock and Convertible Series A Preferred Stock have been retroactively restated to reflect the reverse split thereof, which was effected as of the close of business on September 10, 2020. Refer to Note 10&#8212;Equity for further information.</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 0in">The accompanying notes are an integral part of the consolidated financial statements.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&#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="#toc1">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 colspan="7" style="width:86%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p></td></tr><tr style="height:15px"><td colspan="7" style="width:86%;"><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="cf">CONSOLIDATED STATEMENTS OF CASH FLOWS</span></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: #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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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_558" 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><td style="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_559" contextRef="From2020-01-01to2020-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,391,166</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">Adjustments to Reconcile Net Income (Loss) to 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:#cceeff"><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_561" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_562" contextRef="From2020-01-01to2020-12-31" name="us-gaap:OtherDepreciationAndAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">719,760</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 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_563" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_564" contextRef="From2020-01-01to2020-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:#cceeff"><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;">41,902</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_566" contextRef="From2020-01-01to2020-12-31" name="us-gaap:CapitalizedComputerSoftwareAmortization1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">41,900</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">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_567" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_568" contextRef="From2020-01-01to2020-12-31" name="tomz:EquityCompensationExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,130,986</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">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_569" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_570" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims" format="ixt:numdotdecimal" decimals="0" unitRef="USD">50,190</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">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_571" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_572" contextRef="From2020-01-01to2020-12-31" name="us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" format="ixt:numdotdecimal" decimals="0" unitRef="USD">280,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">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_573" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_574" contextRef="From2020-01-01to2020-12-31" name="us-gaap:InventoryLIFOReservePeriodCharge" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">100,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 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_575" contextRef="From2021-01-01to2021-12-31" name="us-gaap:GainsLossesOnExtinguishmentOfDebt" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">414,583</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_576" contextRef="From2020-01-01to2020-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></tr><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">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 30px">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">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_579" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_580" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,502,043</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 45px">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_581" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_582" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">1,388,986</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 45px">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_583" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_584" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncreaseDecreaseInPrepaidExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">233,642</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 45px">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_585" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_586" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncreaseDecreaseInDeposits" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">247,660</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 45px">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_587" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_588" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncreaseDecreaseInOtherReceivables" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">198,951</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 45px">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_589" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_590" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">294,659</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">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 45px">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;">(447,429</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_593" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:numdotdecimal" decimals="0" unitRef="USD">788,247</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 45px">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_594" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_595" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">78,926</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 45px">Accrued 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="width:1%;white-space: nowrap;"><p style="font-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_596" contextRef="From2021-01-01to2021-12-31" name="tomz:DebtInstrumentIncreasesAccruedInterest" 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_597" contextRef="From2020-01-01to2020-12-31" name="tomz:DebtInstrumentIncreasesAccruedInterest" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">66,667</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 45px">Customer 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_598" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_599" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncreaseDecreaseInCustomerDeposits" format="ixt:numdotdecimal" decimals="0" unitRef="USD">118,880</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 45px">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="width:1%;white-space: nowrap;"><p style="font-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_600" contextRef="From2021-01-01to2021-12-31" name="tomz:IncreaseDecreaseInLeaseLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">151,088</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_601" contextRef="From2020-01-01to2020-12-31" name="tomz:IncreaseDecreaseInLeaseLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">146,688</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">&#160;</p></td><td style="width:1%;white-space: 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%;"><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:9%;"><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></tr><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 0in">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_602" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">3,823,684</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_603" contextRef="From2020-01-01to2020-12-31" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,578,076</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 0px 0px 0in">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:#cceeff"><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_605" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_606" contextRef="From2020-01-01to2020-12-31" name="tomz:CapitalizedPatentAndTrademarkCosts" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">111,386</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">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_607" 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><td style="width:1%;white-space: 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_608" contextRef="From2020-01-01to2020-12-31" name="tomz:PurchaseOfPropertyAndEquipment" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">289,270</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 0px 0px 0in">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_609" 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><td style="width:1%;white-space: 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_610" contextRef="From2020-01-01to2020-12-31" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">400,655</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;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">The accompanying notes are an integral part of the consolidated financial statements.</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;">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="#toc1">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 colspan="6" style="width:88%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC. </strong></p></td></tr><tr style="height:15px"><td colspan="6" style="width:88%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>&#160;CONSOLIDATED STATEMENT OF CASH FLOWS &#8211; CONTINUED </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: #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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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 0px 0px 15px">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_612" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_613" contextRef="From2020-01-01to2020-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></tr><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">Proceeds from Exercise of Warrants and 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;"><ix:nonFraction id="fid_614" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ProceedsFromStockOptionsExercised" 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_615" contextRef="From2020-01-01to2020-12-31" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:numdotdecimal" decimals="0" unitRef="USD">213,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 0px 0px 15px">Proceeds from Loan 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_616" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ProceedsFromOtherDebt" 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_617" contextRef="From2020-01-01to2020-12-31" name="us-gaap:ProceedsFromOtherDebt" format="ixt:numdotdecimal" decimals="0" unitRef="USD">410,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">Repayment of Principal Balance on Convertible Note</p></td><td style="width:1%;white-space: 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_618" contextRef="From2021-01-01to2021-12-31" name="tomz:RepaymentOfPrincipalBalanceOnConvertibleNote" 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_619" contextRef="From2020-01-01to2020-12-31" name="tomz:RepaymentOfPrincipalBalanceOnConvertibleNote" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">500,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 0px 0px 0in">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_642" 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><td style="width:1%;white-space: 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_643" contextRef="From2020-01-01to2020-12-31" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">124,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></tr><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 0in">Increase 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_621" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" format="ixt:numdotdecimal" decimals="0" unitRef="USD">118,601</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_622" contextRef="From2020-01-01to2020-12-31" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,301,620</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 0in">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_623" contextRef="AsOf2020-12-31" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" 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><td style="width:1%;white-space: 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_624" contextRef="AsOf2019-12-31" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">897,223</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 0in">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_625" contextRef="AsOf2021-12-31" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" 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><td style="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_626" contextRef="AsOf2020-12-31" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">5,198,842</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 0px 0px 0in">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 For 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: 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_628" contextRef="From2021-01-01to2021-12-31" name="us-gaap:InterestPaidNet" 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_629" contextRef="From2020-01-01to2020-12-31" name="us-gaap:InterestPaidNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">107,356</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 0px 0px 15px">Cash Paid 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_630" 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><td style="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_631" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeTaxesPaidNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">800</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 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Accrued 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="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_633" contextRef="From2021-01-01to2021-12-31" name="tomz:AccruedEquityCompensation" 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_634" contextRef="From2020-01-01to2020-12-31" name="tomz:AccruedEquityCompensation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">27,189</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 0px 0px 15px">Conversion of Note Payable into Common 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: 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_635" contextRef="From2021-01-01to2021-12-31" name="us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities" 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_636" contextRef="From2020-01-01to2020-12-31" name="us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,500,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 0px 0px 15px">Equipment, net Transferred to 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="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_637" contextRef="From2021-01-01to2021-12-31" name="tomz:EquipmentNetTransferredToInventory" 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_638" contextRef="From2020-01-01to2020-12-31" name="tomz:EquipmentNetTransferredToInventory" format="ixt:numdotdecimal" decimals="0" unitRef="USD">22,685</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 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_639" 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><td style="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_640" contextRef="From2020-01-01to2020-12-31" name="tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">49,758</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><p style="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 accompanying notes are an integral part of the consolidated financial statements. </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;">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="#toc1">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 0px 0px 0in; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></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="fs">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_644" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NatureOfOperations" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 1. DESCRIPTION OF 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 0px 0px 0in;text-indent:45px">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;&#160;(BIT&#8482;) platform, under which we manufacture, license, service and sell our SteraMist&#174;&#160;brand of products, including SteraMist&#174;&#160;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 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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Invented under a defense grant in association with the Defense Advanced Research Projects Agency (DARPA) of the U.S. Department of Defense, BIT&#8482;&#160;is&#160;registered with the U.S. Environmental Protection Agency (EPA) and&#160;uses a low percentage hydrogen peroxide as its only active ingredient to produce a fog composed mostly of a hydroxyl radical (<strong>.</strong>OH ion), known as ionized Hydrogen Peroxide (iHP&#8482;). Represented by the SteraMist&#174;&#160;brand of products, iHP&#8482;&#160;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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_645" contextRef="From2021-01-01to2021-12-31" name="us-gaap:SignificantAccountingPoliciesTextBlock" escape="true" continuedAt="cont_26b814"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</strong></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><em>Principles of Consolidation</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_662" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ConsolidationPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_663" contextRef="From2021-01-01to2021-12-31" name="us-gaap:PriorPeriodReclassificationAdjustmentDescription" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_664" contextRef="From2021-01-01to2021-12-31" name="us-gaap:UseOfEstimates" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-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="#toc1">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_26b814" continuedAt="cont_69600e"><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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_665" contextRef="From2021-01-01to2021-12-31" name="us-gaap:FairValueMeasurementPolicyPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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">&#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:6%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Level 1:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Quoted prices in active markets for identical assets or liabilities.</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 0px 0px 0in">Level 2:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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></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 0px 0px 0in">Level 3:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_666" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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. At December, 2021 and 2020 there were no cash equivalents.</p></ix:nonNumeric><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><em>Accounts Receivable</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_667" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ReceivablesPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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. Bad debt expense for the years ended December 31, 2021 and 2020 was $<ix:nonFraction id="fid_866" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ProvisionForDoubtfulAccounts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,605,660</ix:nonFraction> and $<ix:nonFraction id="fid_868" contextRef="From2020-01-01to2020-12-31" name="us-gaap:ProvisionForDoubtfulAccounts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">332,027</ix:nonFraction>, respectively. At December 31, 2021 and December 31, 2020, the allowance for doubtful accounts was $<ix:nonFraction id="fid_869" contextRef="AsOf2021-12-31" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,678,000</ix:nonFraction>and $<ix:nonFraction id="fid_870" contextRef="AsOf2020-12-31" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" format="ixt:numdotdecimal" decimals="0" unitRef="USD">390,000</ix:nonFraction>, respectively.</p></ix:nonNumeric><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><em>Inventories</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_668" contextRef="From2021-01-01to2021-12-31" name="us-gaap:InventoryPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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. Our reserve for obsolete inventory was $<ix:nonFraction id="fid_872" contextRef="AsOf2021-12-31" name="us-gaap:InventoryValuationReserves" format="ixt:numdotdecimal" decimals="0" unitRef="USD">0</ix:nonFraction> as of December 31, 2021 and December 31, 2020, respectively.</p></ix:nonNumeric><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><em>Property and Equipment</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_669" contextRef="From2021-01-01to2021-12-31" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-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="#toc1">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_69600e" continuedAt="cont_b77e78"><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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_670" contextRef="From2021-01-01to2021-12-31" name="us-gaap:LesseeLeasesPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:36pt">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:36pt">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:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_671" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 both&#160;the years ended December 31, 2021 and 2020, was $<ix:nonFraction id="fid_873" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CapitalizedComputerSoftwareAmortization1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">41,900</ix:nonFraction>.</p></ix:nonNumeric><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><em>Accounts Payable</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_672" contextRef="From2021-01-01to2021-12-31" name="tomz:AccountsPayablePolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">As of December 31, 2021, two vendors accounted for approximately <ix:nonFraction id="fid_888" contextRef="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember" name="us-gaap:ConcentrationRiskPercentage1" decimals="INF" unitRef="Pure" scale="-2">53</ix:nonFraction>% of accounts payable. As of December 31, 2020, two vendors accounted for approximately <ix:nonFraction id="fid_889" contextRef="From2020-01-01to2020-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember" name="us-gaap:ConcentrationRiskPercentage1" decimals="INF" unitRef="Pure" scale="-2">32</ix:nonFraction>% of accounts payable.</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 0px 0px 0in;text-indent:45px">For the year ended December 31, 2021, two vendors accounted for <ix:nonFraction id="fid_891" contextRef="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember" name="us-gaap:ConcentrationRiskPercentage1" decimals="INF" unitRef="Pure" scale="-2">65</ix:nonFraction>% of cost of sales. For the year ended December 31, 2020, two vendors accounted for <ix:nonFraction id="fid_893" contextRef="From2020-01-01to2020-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember" name="us-gaap:ConcentrationRiskPercentage1" decimals="INF" unitRef="Pure" scale="-2">76</ix:nonFraction>% of cost of sales.</p></ix:nonNumeric><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><em>Accrued Warranties</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_673" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ExtendedProductWarrantyPolicy" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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, 2021, and December 31, 2020, our warranty reserve was $<ix:nonFraction id="fid_878" contextRef="AsOf2021-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;text-indent:45px">&#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-indent:45px">&#160;</p><ix:nonNumeric id="fid_674" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">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 Accounting Standards Codification (ASC) Topic 740: Income Taxes. Net deferred tax benefits have been fully reserved at December 31, 2021 and December 31, 2020. 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></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="#toc1">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_b77e78" continuedAt="cont_4fb458"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Net Income (Loss) Per Share</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_675" contextRef="From2021-01-01to2021-12-31" name="us-gaap:EarningsPerSharePolicyTextBlock" escape="true" continuedAt="cont_a0cc16"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Potentially dilutive securities as of December 31, 2021 consisted of <ix:nonFraction id="fid_909" 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_1038" 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_1039" 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Potentially dilutive securities as of December 31, 2020 consisted of <ix:nonFraction id="fid_910" contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,049,133</ix:nonFraction> shares of common stock issuable upon exercise of outstanding warrants, <ix:nonFraction id="fid_1037" contextRef="From2020-01-01to2020-12-31_tomz_StockOptionsMember" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">132,500</ix:nonFraction> shares of common stock issuable upon outstanding options and <ix:nonFraction id="fid_1040" contextRef="AsOf2020-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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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, preferred stock and shares associated with the conversion of debt to purchase approximately <ix:nonFraction id="fid_902" contextRef="AsOf2021-12-31_tomz_EquityIncentivePlanOneMember" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:numdotdecimal" decimals="-5" unitRef="Shares" scale="6">3.6</ix:nonFraction> million and <ix:nonFraction id="fid_905" contextRef="AsOf2021-12-31_tomz_EquityIncentivePlanOneMember" name="us-gaap:CommonStockSharesAuthorized" format="ixt:numdotdecimal" decimals="-5" unitRef="Shares" scale="6">2.2</ix:nonFraction> million shares of common stock were outstanding at December 31, 2021 and 2020, respectively, but were excluded from the computation of diluted net loss per share at December 31, 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">&#160;</p><ix:nonNumeric id="fid_684" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock" escape="true" continuedAt="cont_8c3acf"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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_708" 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><td style="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_709" contextRef="From2020-01-01to2020-12-31" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,391,166</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 0in">Adjustments for convertible debt - as converted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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">Interest on convertible 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="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_710" contextRef="From2021-01-01to2021-12-31" name="tomz:InterestOnConvertibleDebt" 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: 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_711" contextRef="From2020-01-01to2020-12-31" name="tomz:InterestOnConvertibleDebt" format="ixt:numdotdecimal" decimals="0" unitRef="USD">40,689</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 0px 0px 0in">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_712" contextRef="From2021-01-01to2021-12-31" name="tomz:NetLossAttributableToCommonShareholders" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,435,599</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_713" contextRef="From2020-01-01to2020-12-31" name="tomz:NetLossAttributableToCommonShareholders" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,431,855</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 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_715" 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><td style="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_716" contextRef="From2020-01-01to2020-12-31" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">16,512,126</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 0px 0px 0in">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_717" 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><td style="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_718" contextRef="From2020-01-01to2020-12-31" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">18,757,509</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 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_720" 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><td style="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_721" contextRef="From2020-01-01to2020-12-31" name="tomz:Basic" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.27</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 0px 0px 0in">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_722" 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><td style="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_723" contextRef="From2020-01-01to2020-12-31" name="tomz:Diluted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.23</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></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="#toc1">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_4fb458" continuedAt="cont_21bdfb"><ix:continuation id="cont_a0cc16"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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">&#160;</p><ix:continuation id="cont_8c3acf"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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">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_724" contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">4,435,599</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_725" contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember" name="us-gaap:NetIncomeLoss" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,391,166</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 0px 0px 0in">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">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_726" contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_727" contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">16,512,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 0in">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">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;"><ix:nonFraction id="fid_729" contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember" name="us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants" 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></tr><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">Convertible 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;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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">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;"><ix:nonFraction id="fid_731" contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember" name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" 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></tr><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">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;"><ix:nonFraction id="fid_733" contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember" name="us-gaap:IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements" 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></tr><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 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_735" contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" 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><td style="width:1%;white-space: 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="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">18,757,509</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 0px 0px 0in">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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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 0in">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_736" contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember" 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><td style="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_737" contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember" name="us-gaap:EarningsPerShareBasic" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.27</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 0px 0px 0in">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_738" contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember" 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><td style="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_739" contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember" name="us-gaap:EarningsPerShareDiluted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.23</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 0px 0px 0in">Note: Warrants, options and preferred stock for the years ended December 31, 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.</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 0px 0px 0in"><strong><em>Revenue Recognition</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_676" contextRef="From2021-01-01to2021-12-31" name="us-gaap:RevenueRecognitionPolicyTextBlock" escape="true" continuedAt="cont_17b2a7"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 0px 0px 0in"><em>Disaggregation of Revenue</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 0px 0px 0in;text-indent:45px">The following table presents our revenues disaggregated by revenue source.</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="#toc1">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_21bdfb" continuedAt="cont_476cec"><ix:continuation id="cont_17b2a7"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><em>Product and Service Revenue</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_685" contextRef="From2021-01-01to2021-12-31" name="us-gaap:DisaggregationOfRevenueTableTextBlock" escape="true" continuedAt="cont_9dfe0f"><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"><strong>For The Years Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Change </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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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_742" 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_747" contextRef="From2020-01-01to2020-12-31_tomz_SteraMistProductMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">22,971,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_1623" contextRef="From2021-01-01to2021-12-31_tomz_SteraMistProductMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">16,792,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 0in">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_743" 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_749" contextRef="From2020-01-01to2020-12-31_tomz_ServiceAndTrainingMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,057,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_1622" contextRef="From2021-01-01to2021-12-31_tomz_ServiceAndTrainingMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">482,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 0px 0px 0in">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_746" contextRef="From2021-01-01to2021-12-31_tomz_ProductAndServiceRevenueMember" 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_748" contextRef="From2020-01-01to2020-12-31_tomz_ProductAndServiceRevenueMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">25,028,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_752" contextRef="From2021-01-01to2021-12-31_tomz_ProductAndServiceRevenueMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">17,274,000</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">&#160; </p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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_9dfe0f"><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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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_744" contextRef="From2021-01-01to2021-12-31_us-gaap_DomesticCountryMember" 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_750" contextRef="From2020-01-01to2020-12-31_us-gaap_DomesticCountryMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">18,367,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_1621" contextRef="From2021-01-01to2021-12-31_us-gaap_DomesticCountryMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">11,964,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 0in">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_745" 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_751" contextRef="From2020-01-01to2020-12-31_tomz_InternationalMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">6,661,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_1620" contextRef="From2021-01-01to2021-12-31_tomz_InternationalMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">5,310,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 0px 0px 0in">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_1618" contextRef="From2021-01-01to2021-12-31_tomz_RevenueByGeographicRegionMember" 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_1619" contextRef="From2020-01-01to2020-12-31_tomz_RevenueByGeographicRegionMember" name="us-gaap:Revenues" format="ixt:numdotdecimal" decimals="0" unitRef="USD">25,028,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_753" contextRef="From2021-01-01to2021-12-31_tomz_RevenueByGeographicRegionMember" name="tomz:ChangesInRevenue" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">17,274,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</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 0px 0px 0in;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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">As of December 31, 2021, and December 31, 2020 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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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;text-indent:45px">&#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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_677" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" escape="true" continuedAt="cont_0b07ce"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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></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-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="#toc1">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_476cec" continuedAt="cont_8ca156"><ix:continuation id="cont_0b07ce"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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. 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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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_906" 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 years ended December 31, 2021 and 2020, we issued <ix:nonFraction id="fid_1044" contextRef="From2021-01-01to2021-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember" name="tomz:CommonStockSharesIssuedVested" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">50,000</ix:nonFraction> and <ix:nonFraction id="fid_908" contextRef="From2020-01-01to2020-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:continuation><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><em>Concentrations of Credit Risk</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_678" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ConcentrationRiskCreditRisk" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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_887" contextRef="From2020-01-01to2020-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;text-indent:45px">&#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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_679" contextRef="From2021-01-01to2021-12-31" name="tomz:LonglivedAssetsIncludingAcquiredIntangibleAssets" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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, 2021 and 2020.</p></ix:nonNumeric><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><em>Advertising and Promotional Expenses</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_680" contextRef="From2021-01-01to2021-12-31" name="us-gaap:AdvertisingCostsPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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, 2021 and 2020 were approximately $<ix:nonFraction id="fid_880" contextRef="From2021-01-01to2021-12-31" name="us-gaap:AdvertisingExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">701,000</ix:nonFraction> and $<ix:nonFraction id="fid_882" contextRef="From2020-01-01to2020-12-31" name="us-gaap:AdvertisingExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">276,000</ix:nonFraction>, respectively.</p></ix:nonNumeric><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><em>Research and Development Expenses</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_681" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ResearchAndDevelopmentExpensePolicy" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">We expense research and development expenses in the period in which they are incurred. For the years ended December 31, 2021 and 2020, research and development expenses were approximately $<ix:nonFraction id="fid_884" contextRef="From2021-01-01to2021-12-31" name="tomz:ResearchAndDevelopmentsExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">573,000</ix:nonFraction> and $<ix:nonFraction id="fid_886" contextRef="From2020-01-01to2020-12-31" name="tomz:ResearchAndDevelopmentsExpense" format="ixt:numdotdecimal" decimals="0" unitRef="USD">455,000</ix:nonFraction>, respectively.</p></ix:nonNumeric><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><em>Business Segments</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_682" contextRef="From2021-01-01to2021-12-31" name="us-gaap:BusinessCombinationsPolicy" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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></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-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="#toc1">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_8ca156"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Recent Accounting Pronouncements</em></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_683" contextRef="From2021-01-01to2021-12-31" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"><em>Recently issued accounting pronouncements not yet adopted</em></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">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">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. The disclosure requirements can be applied either retrospectively or prospectively to all transactions in the scope of the amendments that are reflected in the financial statements at the date of initial application and new transactions that are entered into after the date of initial application. The 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:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"><em>Recently adopted accounting pronouncements</em></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">In December 2019, the FASB issued ASU No. 2019-12, Simplifying the Accounting for Income Taxes, as part of its initiative to reduce complexity in accounting standards. The amendments in the ASU include removing exceptions to incremental intraperiod tax allocation of losses and gains from different financial statement components, exceptions to the method of recognizing income taxes on interim period losses, and exceptions to deferred tax liability recognition related to foreign subsidiary investments. In addition, the ASU requires that entities recognize franchise tax based on an incremental method and requires an entity to evaluate the accounting for step-ups in the tax basis of goodwill as inside or outside of a business combination. We adopted ASU 2019-12 starting 2021, 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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_646" contextRef="From2021-01-01to2021-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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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_686" contextRef="From2021-01-01to2021-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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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_757" 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><td style="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_758" contextRef="AsOf2020-12-31" name="us-gaap:InventoryFinishedGoods" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,404,025</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 0in">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="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_759" contextRef="AsOf2021-12-31" name="us-gaap:InventoryRawMaterials" format="ixt:numdotdecimal" decimals="0" unitRef="USD">450,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_760" contextRef="AsOf2020-12-31" name="us-gaap:InventoryRawMaterials" format="ixt:numdotdecimal" decimals="0" unitRef="USD">377,490</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_761" 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><td style="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_762" contextRef="AsOf2020-12-31" name="us-gaap:InventoryNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,781,515</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_647" contextRef="From2021-01-01to2021-12-31" name="tomz:VendorDepositsTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 4. VENDOR DEPOSITS</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:45px">On December 31, 2021 and December 31, 2020, we maintained vendor deposits of $288,586 and $388,712, 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_648" contextRef="From2021-01-01to2021-12-31" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 5. PROPERTY AND EQUIPMENT</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:45px">&#160;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_687" contextRef="From2021-01-01to2021-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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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: #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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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_763" 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><td style="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_764" contextRef="AsOf2020-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 0px 0px 0in">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_765" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_766" contextRef="AsOf2020-12-31" name="tomz:Equipments" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,580,743</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 0in">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_767" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_768" contextRef="AsOf2020-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 0px 0px 0in">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_769" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_770" contextRef="AsOf2020-12-31" name="tomz:ComputerSoftware" format="ixt:numdotdecimal" decimals="0" unitRef="USD">203,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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_771" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_772" contextRef="AsOf2020-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 0px 0px 0in">Tenant Improvement 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="width:1%;white-space: nowrap;"><p style="font-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_773" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_774" contextRef="AsOf2020-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 0px 0px 0in">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_775" 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><td style="width:1%;white-space: 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_776" contextRef="AsOf2020-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></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_777" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_778" contextRef="AsOf2020-12-31" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,993,507</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 0in">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_779" 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><td style="width:1%;white-space: 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="AsOf2020-12-31" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,695,404</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_781" 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><td style="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_782" contextRef="AsOf2020-12-31" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,298,103</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 0px 0px 0in;text-indent:45px">For the years ended December 31, 2021 and 2020, depreciation was $<ix:nonFraction id="fid_1048" contextRef="From2021-01-01to2021-12-31" name="us-gaap:Depreciation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">283,259</ix:nonFraction> and $<ix:nonFraction id="fid_1050" contextRef="From2020-01-01to2020-12-31" name="us-gaap:Depreciation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">342,523</ix:nonFraction>, respectively. For the years ended December 31, 2021 and 2020, amortization of tenant improvement allowance was $<ix:nonFraction id="fid_1054" contextRef="From2021-01-01to2021-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_649" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IntangibleAssetsDisclosureTextBlock" escape="true" continuedAt="cont_7f0363"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 6. INTANGIBLE ASSETS</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:45px">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_1056" contextRef="From2021-01-01to2021-12-31" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">11,406</ix:nonFraction> and $<ix:nonFraction id="fid_1058" contextRef="From2020-01-01to2020-12-31" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">377,237</ix:nonFraction> for the years ended December 31, 2021 and 2020, respectively.</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-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="#toc1">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_7f0363"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Definite life intangible assets consist of the following:</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&#160;</p><ix:nonNumeric id="fid_688" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" 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 0px 0px 0in; text-align:center;"><strong>&#160;December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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_783" 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><td style="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_784" contextRef="AsOf2020-12-31" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,000,012</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 0in">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_785" 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><td style="width:1%;white-space: 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_786" contextRef="AsOf2020-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,856,991</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 0in">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_787" 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><td style="width:1%;white-space: 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_788" contextRef="AsOf2020-12-31" name="tomz:IntangibleAssetsNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">143,021</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 0px 0px 0in;text-indent:45px">Indefinite life intangible assets consist of the following:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_689" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" 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 style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_789" 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><td style="width:1%;white-space: 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_790" contextRef="AsOf2020-12-31" name="us-gaap:IndefiniteLivedTrademarks" format="ixt:numdotdecimal" decimals="0" unitRef="USD">578,895</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 0px 0px 0in">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: 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_791" 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><td style="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_792" contextRef="AsOf2020-12-31" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:numdotdecimal" decimals="0" unitRef="USD">722,916</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 0px 0px 0in;text-indent:45px">Approximate future amortization is 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 0px 0px 0in;text-indent:45px">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_690" contextRef="From2021-01-01to2021-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:85%" 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><span style="text-decoration:underline">Year Ended</span></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"><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></tr><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">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="width:1%;white-space: nowrap;"><p style="font-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="AsOf2021-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,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">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_795" contextRef="AsOf2021-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,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">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_796" contextRef="AsOf2021-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,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">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_797" contextRef="AsOf2021-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,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">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_798" contextRef="AsOf2021-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" format="ixt:numdotdecimal" decimals="0" unitRef="USD">10,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">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: 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_799" contextRef="AsOf2021-12-31" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" format="ixt:numdotdecimal" decimals="0" unitRef="USD">147,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;</p></td><td style="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_800" contextRef="AsOf2021-12-31" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">197,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_650" contextRef="From2021-01-01to2021-12-31" name="us-gaap:LeasesOfLesseeDisclosureTextBlock" escape="true" continuedAt="cont_03924b"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">In April 2018, we entered into a <ix:nonNumeric id="fid_1624" contextRef="From2021-01-01to2021-12-31" name="tomz:TermLease" format="ixt-sec:duryear">10</ix:nonNumeric>-year lease agreement for a new <ix:nonFraction id="fid_1059" 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 was scheduled to commence on December 1, 2018 or when the property was ready for occupancy. The agreement provided for annual rent of $<ix:nonFraction id="fid_1060" 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_1061" 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_1062" 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_1693" 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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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">&#160;</p><ix:nonNumeric id="fid_691" contextRef="From2021-01-01to2021-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 0px 0px 0in"><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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in"><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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">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_802" 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><td style="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_803" contextRef="AsOf2020-12-31" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:numdotdecimal" decimals="0" unitRef="USD">631,527</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 0px 0px 0in"><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_805" 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><td style="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_806" contextRef="AsOf2020-12-31" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">81,223</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_807" 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><td style="width:1%;white-space: 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="AsOf2020-12-31" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">953,190</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_809" 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><td style="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_810" contextRef="AsOf2020-12-31" name="us-gaap:OperatingLeaseLiability" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,034,413</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 0px 0px 0in;text-indent:45px">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_692" contextRef="From2021-01-01to2021-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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0in">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_811" contextRef="From2020-01-01to2020-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_812" 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></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-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="#toc1">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_03924b"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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_693" contextRef="From2021-01-01to2021-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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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 0px 0px 0in">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 0px 0px 0in; text-align:right;">&#160;<ix:nonNumeric id="fid_813" contextRef="From2021-01-01to2021-12-31" name="tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm">7.25 years</ix:nonNumeric></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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 0px 0px 0in; text-align:right;">&#160;<ix:nonNumeric id="fid_814" contextRef="From2020-01-01to2020-12-31" name="tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm">8.25 years</ix:nonNumeric></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 style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_815" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_816" contextRef="AsOf2020-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 0px 0px 0in;text-indent:45px">Supplemental cash flow 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_694" contextRef="From2021-01-01to2021-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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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_817" 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><td style="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="From2020-01-01to2020-12-31" name="us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm" format="ixt:numdotdecimal" decimals="0" unitRef="USD">146,688</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 0px 0px 0in;text-indent:45px">As of December 31, 2021, 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_695" contextRef="From2021-01-01to2021-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 0px 0px 0in"><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 0px 0px 0in"><strong>&#160;Operating 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 0px 0px 0in">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="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_819" contextRef="AsOf2021-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:numdotdecimal" decimals="0" unitRef="USD">155,621</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 0in">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_820" contextRef="AsOf2021-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" 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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_821" contextRef="AsOf2021-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" 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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_822" contextRef="AsOf2021-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" 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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_823" contextRef="AsOf2021-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" 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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_824" contextRef="AsOf2021-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" format="ixt:numdotdecimal" decimals="0" unitRef="USD">399,978</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 0in">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_825" contextRef="AsOf2021-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,226,191</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 0in">Less: 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_826" contextRef="AsOf2021-12-31" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">273,001</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 0in">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_827" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLeaseLiability" format="ixt:numdotdecimal" decimals="0" unitRef="USD">953,190</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 0in">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_828" 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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_829" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">861,415</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_651" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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_696" contextRef="From2021-01-01to2021-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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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_830" 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><td style="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_831" contextRef="AsOf2020-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 0px 0px 0in">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_832" 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><td style="width:1%;white-space: 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_833" contextRef="AsOf2020-12-31" name="us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">73,327</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: 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_834" 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><td style="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_835" contextRef="AsOf2020-12-31" name="us-gaap:CapitalizedComputerSoftwareNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">52,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></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 0px 0px 0in;text-indent:45px">Amortization expense for the years ended December 31, 2021 and 2020 was $<ix:nonFraction id="fid_1063" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CapitalizedComputerSoftwareAmortization1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">41,900</ix:nonFraction> and $<ix:nonFraction id="fid_1064" contextRef="From2020-01-01to2020-12-31" name="us-gaap:CapitalizedComputerSoftwareAmortization1" 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_652" contextRef="From2021-01-01to2021-12-31" name="tomz:CloudComputingServiceContractDisclosureTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 9. 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 0px 0px 0in;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_1065" 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_1625" contextRef="From2021-01-01to2021-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 0px 0px 0in;text-indent:45px">We have incurred implementation costs of $<ix:nonFraction id="fid_1066" contextRef="AsOf2021-09-30" 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, 2021. 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, 2021 and 2020 were $<ix:nonFraction id="fid_1069" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CostOfGoodsAndServicesSoldAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,232</ix:nonFraction> and $<ix:nonFraction id="fid_1067" contextRef="From2020-01-01to2020-12-31" name="us-gaap:CostOfGoodsAndServicesSoldAmortization" format="ixt:numdotdecimal" decimals="0" unitRef="USD">17,745</ix:nonFraction>, respectively.</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-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="#toc1">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_653" contextRef="From2021-01-01to2021-12-31" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" escape="true" continuedAt="cont_aa6abd"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong><em>Reverse Stock Split</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-indent:45px">On September 9, 2020, the Board approved a <ix:nonNumeric id="fid_1348" contextRef="From2021-01-01to2021-12-31" name="us-gaap:StockholdersEquityReverseStockSplit">reverse stock split of our common stock and our Convertible Series A Preferred Stock, in each case, at a ratio of 1-for-8 and without any change to the respective par value thereof (the &#8220;Reverse Stock Split&#8221;), and, on September 10, 2020</ix:nonNumeric>, we filed an Articles of Amendment to our Articles of Incorporation with the Department of State of the State of Florida to effect the Reverse Stock Split. The Reverse Stock Split became effective as of September 10, 2020. All per-share and share amounts have been retroactively restated.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">Our authorized Convertible Series A Preferred Stock, $<ix:nonFraction id="fid_1449" contextRef="AsOf2020-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_1447" contextRef="AsOf2021-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, 2021 and 2020, there were <ix:nonFraction id="fid_1451" contextRef="AsOf2020-12-31_us-gaap_SeriesAPreferredStockMember" name="us-gaap:PreferredStockSharesOutstanding" 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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">Our authorized Convertible Series B Preferred Stock, $1,000 stated value, 7.5% cumulative dividend, consists of <ix:nonFraction id="fid_1458" contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">4,000</ix:nonFraction> shares. At December 31, 2021 and 2020, 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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">During the year ended December 31, 2020, we issued <ix:nonFraction id="fid_1375" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">50,000</ix:nonFraction> shares of common stock valued at $<ix:nonFraction id="fid_1376" contextRef="From2021-01-01to2021-12-31" name="tomz:CommonStockSharesFullyVestedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">48,000</ix:nonFraction> to members of our Board (see Note 13). During the year ended December 31, 2020, we issued <ix:nonFraction id="fid_1463" contextRef="From2020-01-01to2020-12-31" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">500</ix:nonFraction> shares of common stock valued at $<ix:nonFraction id="fid_1464" contextRef="From2020-01-01to2020-12-31" name="tomz:CommonStockSharesFullyVestedAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,190</ix:nonFraction> to a consultant.</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 0px 0px 0in;text-indent:45px">In March 2020, <ix:nonFraction id="fid_1377" contextRef="From2021-01-01to2021-12-31_tomz_MarchTwentyTwentyMember" name="tomz:CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,041,667</ix:nonFraction> shares of common stock were issued in connection with the conversion of convertible notes payable aggregating $<ix:nonFraction id="fid_1378" contextRef="From2021-01-01to2021-12-31_tomz_MarchTwentyTwentyMember" name="tomz:CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,500,000</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In March 2020, <ix:nonFraction id="fid_1380" contextRef="From2021-01-01to2021-12-31_tomz_MarchTwentyTwentyMember" name="us-gaap:ConversionOfStockSharesConverted1" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">10,417</ix:nonFraction> shares of common stock were issued in connection with the exercise of warrants for which we received proceeds of $<ix:nonFraction id="fid_1383" contextRef="From2021-01-01to2021-12-31_tomz_MarchTwentyTwentyMember" name="us-gaap:ConversionOfStockAmountConverted1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">57,500</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In May 2020, <ix:nonFraction id="fid_1385" contextRef="From2021-01-01to2021-12-31_tomz_MayTwentyTwentyMember" name="tomz:CommonStockSharesIssuedUponExerciseOfOptionShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,500</ix:nonFraction> shares of common stock were issued in connection with the exercise of options for which we received proceeds of $<ix:nonFraction id="fid_1386" contextRef="From2021-01-01to2021-12-31_tomz_MayTwentyTwentyMember" name="tomz:CommonStockSharesIssuedUponExerciseOfOptionAmount" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,000</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In June 2020, <ix:nonFraction id="fid_1381" contextRef="From2021-01-01to2021-12-31_tomz_JuneTwentyTwentyMember" name="us-gaap:ConversionOfStockSharesConverted1" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">26,940</ix:nonFraction> shares of common stock were issued in connection with the exercise of warrants for which we received proceeds of $<ix:nonFraction id="fid_1384" contextRef="From2021-01-01to2021-12-31_tomz_JuneTwentyTwentyMember" name="us-gaap:ConversionOfStockAmountConverted1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">62,500</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In July 2020, <ix:nonFraction id="fid_1379" contextRef="From2021-01-01to2021-12-31_tomz_JulyTwentyTwentyMember" name="us-gaap:ConversionOfStockSharesConverted1" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">26,940</ix:nonFraction> shares of common stock were issued in connection with the exercise of warrants for which we received proceeds of $<ix:nonFraction id="fid_1382" contextRef="From2021-01-01to2021-12-31_tomz_JulyTwentyTwentyMember" name="us-gaap:ConversionOfStockAmountConverted1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">62,500</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In October 2020, <ix:nonFraction id="fid_1466" contextRef="From2021-01-01to2021-12-31_tomz_OctoberTwoThousandTwentyMember" name="us-gaap:ConversionOfStockSharesConverted1" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">12,500</ix:nonFraction> shares of common stock were issued to our CFO in connection with the exercise of warrants for which we received proceeds of $<ix:nonFraction id="fid_1467" contextRef="From2021-01-01to2021-12-31_tomz_OctoberTwoThousandTwentyMember" name="us-gaap:ConversionOfStockAmountConverted1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">30,000</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-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="#toc1">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_aa6abd" continuedAt="cont_5e02b4"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In January 2021, we issued <ix:nonFraction id="fid_1387" contextRef="From2021-01-01to2021-12-31_tomz_JanuaryTwentyTwentyOneMember" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">50,000</ix:nonFraction> shares of common stock valued at $<ix:nonFraction id="fid_1390" contextRef="AsOf2021-09-30_tomz_JanuaryTwentyTwentyOneMember" 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In September 2021, we sold <ix:nonFraction id="fid_1351" 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_1642" contextRef="AsOf2021-09-30" name="tomz:IssuedWarrantsInConcurrentPrivatePlacement" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,434,721</ix:nonFraction> warrants in a concurrent private placement. We received net proceeds from the transaction of $<ix:nonFraction id="fid_1694" 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 are exercisable at an exercise price of $<ix:nonFraction id="fid_1355" 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 exercise equal to five years from the date of issuance. In addition, we issued <ix:nonFraction id="fid_1643" 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_1644" contextRef="From2021-09-01to2021-09-30" name="tomz:ExercisePrice" 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 0px 0px 0in"><strong><em>Stock Options</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-indent:45px">In January 2020, we issued two options to purchase an aggregate of <ix:nonFraction id="fid_1482" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction> shares of common stock to our Chief Operating Officer at an exercise price of $<ix:nonFraction id="fid_1485" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.80</ix:nonFraction> and $<ix:nonFraction id="fid_1487" contextRef="AsOf2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.96</ix:nonFraction> per share pursuant to her employment agreement with us. The options were valued at a total of $<ix:nonFraction id="fid_1483" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="tomz:FairValueOfStockOption" format="ixt:numdotdecimal" decimals="0" unitRef="USD">23,595</ix:nonFraction> and have a term of <ix:nonNumeric id="fid_1484" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear">5</ix:nonNumeric> years. We utilized the Black-Scholes method to fair value the options received by the COO with the following assumptions: volatility, <ix:nonFraction id="fid_1479" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">135</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1480" contextRef="From2020-01-01to2020-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_1481" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">1.64</ix:nonFraction>%; and a life of 5 years. The grant date fair value of each share of common stock underlying the options was $0.72 and $<ix:nonFraction id="fid_1646" contextRef="From2020-01-01to2020-01-31" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.80</ix:nonFraction>. The value of the stock option was included in accrued expenses at December 31, 2019.</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 0px 0px 0in;text-indent:45px">In October 2020, we issued options to purchase an aggregate of <ix:nonFraction id="fid_1493" contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction> shares of common stock to our Chief Operating Officer at an exercise price of $<ix:nonFraction id="fid_1497" contextRef="AsOf2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">7.06</ix:nonFraction> per share pursuant to her employment agreement with us. The options were valued at a total of $<ix:nonFraction id="fid_1494" contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="tomz:FairValueOfStockOption" format="ixt:numdotdecimal" decimals="0" unitRef="USD">202,104</ix:nonFraction> and have a term of <ix:nonNumeric id="fid_1495" contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear">5</ix:nonNumeric> years. We utilized the Black-Scholes method to fair value the options received by the COO with the following assumptions: volatility, <ix:nonFraction id="fid_1490" contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">154</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1491" contextRef="From2020-10-01to2020-10-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_1492" contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">0.67</ix:nonFraction>%; and a life of 5 years. The grant date fair value of each share of common stock underlying the options was $<ix:nonFraction id="fid_1496" contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">6.47</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In December 2021, we issued options to purchase an aggregate of <ix:nonFraction id="fid_1415" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">10,500</ix:nonFraction> shares of common stock to employees at an exercise price of $<ix:nonFraction id="fid_1470" contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.93</ix:nonFraction> per share. The options were valued at a total of $<ix:nonFraction id="fid_1416" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="tomz:FairValueOfStockOption" format="ixt:numdotdecimal" decimals="0" unitRef="USD">18,354</ix:nonFraction> and have a term of 5 years. We utilized the Black-Scholes method to fair value the options received by the employees with the following assumptions: volatility, <ix:nonFraction id="fid_1391" contextRef="From2021-01-01to2021-12-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_1399" contextRef="From2021-01-01to2021-12-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_1407" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">1.25</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1471" contextRef="From2021-01-01to2021-12-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 options was $<ix:nonFraction id="fid_1626" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.75</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">The following table summarizes stock options outstanding as of December 31, 2021 and 2020:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_697" contextRef="From2021-01-01to2021-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: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;"><strong>December 31, 2020</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 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_1677" 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_1684" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_1679" contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember" name="tomz:OutstandingBeginningOfPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">77,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_1691" contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceOutstandingBeginningBalance" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.56</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 0in">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;">&#160;<ix:nonFraction id="fid_1681" 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_1668" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_1682" contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">62,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_1690" contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceGranted" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">3.96</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 0in">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;">-&#160;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_1685" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceExercised" format="ixt:zerodash" decimals="INF" unitRef="USDPShares">-</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_1676" contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember" name="tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares" sign="-">2,500</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_1689" contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceExercised" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.40</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 0in">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;"><ix:nonFraction id="fid_1686" contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceExpired" format="ixt:zerodash" decimals="INF" unitRef="USDPShares">-</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_1674" contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">5,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_1688" contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceExpired" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">16.80</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 0in">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_1670" 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_1664" 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><td style="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;">&#160;<ix:nonFraction id="fid_1672" contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember" name="tomz:OutstandingEndOfPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">132,500</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_1687" contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember" name="tomz:WeightedAverageExercisePriceOutstandingEndingBalance" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.72</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-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="#toc1">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_5e02b4" continuedAt="cont_e824d1"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Options outstanding and exercisable by price range as of December 31, 2021 were as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_698" contextRef="From2021-01-01to2021-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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Remaining</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><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:9%;"><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:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1174" contextRef="AsOf2021-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:9%;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1181" contextRef="From2021-01-01to2021-12-31_tomz_RangeOneMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">3.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:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1188" contextRef="AsOf2021-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:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1195" contextRef="AsOf2021-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_1179" contextRef="AsOf2021-12-31_tomz_RangeSevenMember" 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_1182" contextRef="From2021-01-01to2021-12-31_tomz_RangeTwoMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">2.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_1193" contextRef="AsOf2021-12-31_tomz_RangeSevenMember" 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_1196" contextRef="AsOf2021-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_1176" contextRef="AsOf2021-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_1183" contextRef="From2021-01-01to2021-12-31_tomz_RangeThreeMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">2.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_1190" contextRef="AsOf2021-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_1197" contextRef="AsOf2021-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.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_1173" contextRef="AsOf2021-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_1204" contextRef="From2021-01-01to2021-12-31_tomz_RangeFourMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">4.96</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_1203" contextRef="AsOf2021-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_1202" contextRef="AsOf2021-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:#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.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_1177" contextRef="AsOf2021-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_1184" contextRef="From2021-01-01to2021-12-31_tomz_RangeFiveMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">3.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_1191" contextRef="AsOf2021-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_1198" contextRef="AsOf2021-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:#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.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_1178" contextRef="AsOf2021-12-31_tomz_RangeSixMember" 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_1185" contextRef="From2021-01-01to2021-12-31_tomz_RangeSixMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">4.10</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_1192" contextRef="AsOf2021-12-31_tomz_RangeSixMember" 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_1199" contextRef="AsOf2021-12-31_tomz_RangeSixMember" 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:#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;">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="BORDER-BOTTOM: black 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: black 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1175" contextRef="AsOf2021-12-31_tomz_RangeTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</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: black 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: black 1px solid;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1186" contextRef="From2021-01-01to2021-12-31_tomz_RangeSevenMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">3.75</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: black 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: black 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1189" contextRef="AsOf2021-12-31_tomz_RangeTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</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: black 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1200" contextRef="AsOf2021-12-31_tomz_RangeSevenMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">7.06</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:#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="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_1206" contextRef="AsOf2021-12-31" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">143,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_1180" contextRef="From2021-01-01to2021-12-31" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">2.89</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_1187" contextRef="AsOf2021-12-31" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">143,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_1194" contextRef="AsOf2021-12-31" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.66</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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">In January 2020 we issued a warrant to purchase <ix:nonFraction id="fid_1523" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">156,250</ix:nonFraction> shares of common stock to our Chief Executive Officer at an exercise price of $<ix:nonFraction id="fid_1502" contextRef="AsOf2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.20</ix:nonFraction> per share pursuant to an employment agreement. The warrant was valued at $<ix:nonFraction id="fid_1524" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="tomz:FairValueOfStockWarrant" format="ixt:numdotdecimal" decimals="0" unitRef="USD">164,201</ix:nonFraction> and has a term of 5 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_1498" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">136</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1520" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1517" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">1.64</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1629" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" 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_1505" contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.04</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In January 2020 we issued a warrant to purchase <ix:nonFraction id="fid_1530" contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">5,208</ix:nonFraction> shares of common stock to an employee at an exercise price of $<ix:nonFraction id="fid_1532" contextRef="AsOf2020-01-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.96</ix:nonFraction> per share. The warrant was valued at $<ix:nonFraction id="fid_1531" contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember" name="tomz:FairValueOfStockWarrant" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,594</ix:nonFraction> and has a term of <ix:nonNumeric id="fid_1627" contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear">5</ix:nonNumeric> years. We utilized the Black-Scholes model to fair value the warrant received by the employee with the following assumptions: volatility, <ix:nonFraction id="fid_1525" contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">135</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1526" contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1527" contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">1.58</ix:nonFraction>%; and a life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1628" contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.72</ix:nonFraction>. The value of the warrants was expensed in the fourth quarter of 2019 and included in accrued expenses at December 31, 2019.</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 0px 0px 0in;text-indent:45px">In February 2020 we issued a warrant to purchase <ix:nonFraction id="fid_1541" contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">18,750</ix:nonFraction> shares of common stock to an employee at an exercise price of $<ix:nonFraction id="fid_1540" contextRef="AsOf2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.20</ix:nonFraction> per share. The warrant was valued at $<ix:nonFraction id="fid_1542" contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="tomz:FairValueOfStockWarrant" format="ixt:numdotdecimal" decimals="0" unitRef="USD">18,571</ix:nonFraction> and has a term of <ix:nonNumeric id="fid_1538" contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear">3</ix:nonNumeric> years. We utilized the Black-Scholes model to fair value the warrant received by the employee with the following assumptions: volatility, <ix:nonFraction id="fid_1535" contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">155</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1536" contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1537" contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">1.64</ix:nonFraction>%; and a life of 3 years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1539" contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">0.96</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In April 2020 we issued a warrant to purchase <ix:nonFraction id="fid_1436" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">12,500</ix:nonFraction> shares of common stock to our Chief Executive Officer at an exercise price of $<ix:nonFraction id="fid_1553" contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.00</ix:nonFraction> per share pursuant to an employment agreement. The warrant was valued at $<ix:nonFraction id="fid_1443" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember" name="tomz:FairValueOfStockWarrant" format="ixt:numdotdecimal" decimals="0" unitRef="USD">49,693</ix:nonFraction> 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, <ix:nonFraction id="fid_1549" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">173</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1547" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1545" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">0.68</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1543" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" 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_1630" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.00</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In April 2020 we issued a warrant to purchase <ix:nonFraction id="fid_1438" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">6,250</ix:nonFraction> shares of common stock to our Chief Operating Officer at an exercise price of $<ix:nonFraction id="fid_1554" contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.00</ix:nonFraction> per share pursuant to an employment agreement. The warrant was valued at $<ix:nonFraction id="fid_1444" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember" name="tomz:FairValueOfStockWarrant" format="ixt:numdotdecimal" decimals="0" unitRef="USD">24,846</ix:nonFraction> 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, <ix:nonFraction id="fid_1563" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">173</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1561" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1559" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">0.68</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1557" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" 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_1632" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.00</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In April 2020 we issued a warrant to purchase <ix:nonFraction id="fid_1437" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">6,250</ix:nonFraction> shares of common stock to our Chief Financial Officer at an exercise price of $<ix:nonFraction id="fid_1565" contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.00</ix:nonFraction> per share pursuant to an employment agreement. The warrant was valued at $<ix:nonFraction id="fid_1445" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember" name="tomz:FairValueOfStockWarrant" format="ixt:numdotdecimal" decimals="0" unitRef="USD">24,846</ix:nonFraction> 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, <ix:nonFraction id="fid_1574" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">173</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1572" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1570" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">0.68</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1568" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" 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_1422" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.00</ix:nonFraction>.</p></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-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="#toc1">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_e824d1" continuedAt="cont_ecc905"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In April 2020 we issued a warrant to purchase <ix:nonFraction id="fid_1439" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">3,750</ix:nonFraction> shares of common stock to a consultant at an exercise price of <ix:nonFraction id="fid_1576" contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.00</ix:nonFraction> per share. The warrant was valued at $<ix:nonFraction id="fid_1446" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember" name="tomz:FairValueOfStockWarrant" format="ixt:numdotdecimal" decimals="0" unitRef="USD">14,908</ix:nonFraction> and has a term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by the consultant with the following assumptions: volatility, <ix:nonFraction id="fid_1585" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">173</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1583" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1581" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">0.68</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1579" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" 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_1423" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.00</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In August 2020 we issued a warrant to purchase <ix:nonFraction id="fid_1606" contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">893</ix:nonFraction> shares of common stock to a consultant at an exercise price of $<ix:nonFraction id="fid_1605" contextRef="AsOf2020-08-30_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">8.40</ix:nonFraction> per share. The warrant was valued at $<ix:nonFraction id="fid_1607" contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="tomz:FairValueOfStockWarrant" format="ixt:numdotdecimal" decimals="0" unitRef="USD">6,372</ix:nonFraction> and has a term of 3 years. We utilized the Black-Scholes model to fair value the warrant received by the consultant with the following assumptions: volatility, <ix:nonFraction id="fid_1611" contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">166</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1612" contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1613" contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">0.13</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1614" contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear">3</ix:nonNumeric> years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1604" contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">7.13</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In August 2020 we issued a warrant to purchase <ix:nonFraction id="fid_1608" contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">595</ix:nonFraction> shares of common stock to a consultant at an exercise price of $<ix:nonFraction id="fid_1609" contextRef="AsOf2020-08-30_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">8.40</ix:nonFraction> per share. The warrant was valued at $<ix:nonFraction id="fid_1610" contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember" name="tomz:FairValueOfStockWarrant" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,249</ix:nonFraction> and has a term of 3 years. We utilized the Black-Scholes model to fair value the warrant received by the consultant with the following assumptions: volatility, <ix:nonFraction id="fid_1600" contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">166</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1601" contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1602" contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">0.13</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1603" contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear">3</ix:nonNumeric> years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1615" contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">7.14</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In October 2020 we issued a warrant to purchase <ix:nonFraction id="fid_1435" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">375,000</ix:nonFraction> shares of common stock to our Chief Executive Officer at an exercise price of $<ix:nonFraction id="fid_1587" contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">6.95</ix:nonFraction> per share pursuant to an employment agreement. The warrant was valued at $<ix:nonFraction id="fid_1440" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember" name="tomz:FairValueOfStockWarrant" format="ixt:numdotdecimal" decimals="0" unitRef="USD">2,621,196</ix:nonFraction> 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, <ix:nonFraction id="fid_1596" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" decimals="INF" unitRef="Pure" scale="-2">162</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1594" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1592" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">0.67</ix:nonFraction>%; and a life of <ix:nonNumeric id="fid_1590" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" 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_1420" contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember" name="tomz:GrantFairValueOfPerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">6.99</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">On February 11, 2021, we agreed to amend (the &#8220;Warrant Amendment&#8221;) the warrant to purchase <ix:nonFraction id="fid_1635" 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_1358" 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> The $<ix:nonFraction id="fid_1633" 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&#160;year ended December 31, 2021.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In September 2021, we issued <ix:nonFraction id="fid_1637" contextRef="AsOf2021-09-30_tomz_PrivatePlacementsMember" name="us-gaap:WarrantsAndRightsOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,434,721</ix:nonFraction> warrants in a private placement in connection with the sale common stock through a registered direct offering. The Warrants are exercisable at an exercise price of $<ix:nonFraction id="fid_1639" contextRef="AsOf2021-09-30_tomz_PrivatePlacementsMember" 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 exercise equal to five years from the date of issuance. In addition, we issued <ix:nonFraction id="fid_1641" 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_1357" 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">The following table summarizes the outstanding common stock warrants as of December 31, 2021 and 2020:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_699" contextRef="From2021-01-01to2021-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 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;"><strong>December 31, 2020</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 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_1209" 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_1218" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_1210" contextRef="AsOf2019-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">2,155,065</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_1225" contextRef="AsOf2019-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">3.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></tr><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 0in">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_1211" 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_1219" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_1212" contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">585,447</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_1226" contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">4.97</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 0in">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_1220" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" format="ixt:zerodash" decimals="INF" unitRef="USDPShares">-</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;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_1214" contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember" name="tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">76,796</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_1227" contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.77</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 0in">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;">(<ix:nonFraction id="fid_1215" 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_1221" 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><td style="width:1%;white-space: 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_1216" contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">614,583</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_1228" contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">6.40</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 0px 0px 0in">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_1224" 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_1223" 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><td style="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_1222" 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="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_1229" contextRef="AsOf2020-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.55</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-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="#toc1">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_ecc905"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Warrants outstanding and exercisable by price range as of December 31, 2021 were as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_700" contextRef="From2021-01-01to2021-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 0px 0px 0in; 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"></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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Average Weighted</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Remaining Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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:9%;"><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:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1299" contextRef="AsOf2021-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%;white-space: nowrap;"><p style="font-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:nonNumeric id="fid_1300" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsOneMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">1.90</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:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1346" contextRef="AsOf2021-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%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1298" contextRef="AsOf2021-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_1302" contextRef="AsOf2021-12-31_tomz_WarrantsTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">158,125</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_1303" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsTwoMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">1.76</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_1347" contextRef="AsOf2021-12-31_tomz_WarrantsTwoMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">158,125</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_1301" contextRef="AsOf2021-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_1235" contextRef="AsOf2021-12-31_tomz_WarrantsThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">473,958</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_1306" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsThreeMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">0.94</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_1305" contextRef="AsOf2021-12-31_tomz_WarrantsThreeMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">473,958</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_1304" contextRef="AsOf2021-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_1236" contextRef="AsOf2021-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_1309" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsFourMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">2.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_1308" contextRef="AsOf2021-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_1307" contextRef="AsOf2021-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_1237" contextRef="AsOf2021-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_1312" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsFiveMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">2.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_1311" contextRef="AsOf2021-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_1310" contextRef="AsOf2021-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.36</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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_1238" contextRef="AsOf2021-12-31_tomz_WarrantsSixMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,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_1315" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsSixMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">0.82</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_1314" contextRef="AsOf2021-12-31_tomz_WarrantsSixMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,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_1313" contextRef="AsOf2021-12-31_tomz_WarrantsSixMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.36</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.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_1239" contextRef="AsOf2021-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_1318" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsSevenMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">1.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_1317" contextRef="AsOf2021-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_1316" contextRef="AsOf2021-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:#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.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_1240" contextRef="AsOf2021-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_1321" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsEightMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">4.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_1320" contextRef="AsOf2021-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_1319" contextRef="AsOf2021-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:#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.32</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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_1241" contextRef="AsOf2021-12-31_tomz_WarrantsNineMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">523,061</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_1324" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsNineMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">0.18</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_1323" contextRef="AsOf2021-12-31_tomz_WarrantsNineMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">523,061</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_1322" contextRef="AsOf2021-12-31_tomz_WarrantsNineMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.32</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_1244" contextRef="AsOf2021-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_1333" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsTenMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">8.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_1332" contextRef="AsOf2021-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_1331" contextRef="AsOf2021-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_1246" contextRef="AsOf2021-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_1339" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsElevenMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">8.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_1338" contextRef="AsOf2021-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_1337" contextRef="AsOf2021-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_1247" contextRef="AsOf2021-12-31_tomz_WarrantsTwelveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,488</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_1342" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsTwelveMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">1.62</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_1341" contextRef="AsOf2021-12-31_tomz_WarrantsTwelveMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">1,488</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_1340" contextRef="AsOf2021-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_1264" contextRef="AsOf2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">3,381,021</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_1297" contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear">3.66</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_1345" contextRef="AsOf2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">3,381,021</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_1280" contextRef="AsOf2021-12-31_tomz_WarrantsMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">2.22</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 0px 0px 0in;text-indent:45px">There were no unvested warrants outstanding as of December 31, 2021.</p></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_654" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in"><strong><em>Legal Contingencies</em></strong></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 0px 0px 0in;text-indent:45px">We may become a party to litigation in the normal course of business.&#160;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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">As of December 31, 2021 and 2020, there were no claims against us for product liability.</p><p style="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"><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 0px 0px 0in;text-indent:45px">The COVID-19 pandemic has 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. It is difficult to predict how COVID-19 pandemic will affect the Company&#8217;s financial performance in the remainder of 2022, 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">&#160;</p><ix:nonNumeric id="fid_655" contextRef="From2021-01-01to2021-12-31" name="tomz:ContractsAndAgreementsTextBlock" escape="true" continuedAt="cont_9a3541"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in"><strong><em>Executive Agreements</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"><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 0px 0px 0in;text-indent:45px">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 $<ix:nonFraction id="fid_1083" contextRef="From2020-09-01to2020-09-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember" name="us-gaap:SalariesAndWages" format="ixt:numdotdecimal" decimals="0" unitRef="USD">500,000</ix:nonFraction>.&#160;The agreement also provides for a signing bonus of <ix:nonFraction id="fid_1085" contextRef="AsOf2020-09-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember" name="us-gaap:ClassOfWarrantOrRightOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">375,000</ix:nonFraction> warrants. Dr. Shane is also entitled to a cash performance bonus and an annual issuance of an option to purchase <ix:nonFraction id="fid_1087" contextRef="AsOf2020-09-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember" name="tomz:IssuanceOfOptionToPurchaseSharesOfCommonStock" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction> 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 $<ix:nonFraction id="fid_1088" contextRef="From2020-09-01to2020-09-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember" name="tomz:ReimburseOfExpensesAssociatedWithUseOfAutomobile" format="ixt:numdotdecimal" decimals="0" unitRef="USD">750</ix:nonFraction> a month. The term of the agreement is three years.</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><tr style="height:15px"><td><p style='page-break-after: always'></p></td></tr><tr style="height:15px"><td><em><a href="#toc1">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_9a3541" continuedAt="cont_901ac4"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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 $<ix:nonFraction id="fid_1616" contextRef="From2021-01-01to2021-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember" name="us-gaap:SalariesAndWages" format="ixt:numdotdecimal" decimals="0" unitRef="USD">270,000</ix:nonFraction>, 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 <ix:nonFraction id="fid_1086" contextRef="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember" name="us-gaap:ClassOfWarrantOrRightOutstanding" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">93,750</ix:nonFraction> warrants. Additionally, in connection with the execution of&#160;her employment agreement, on October 1, 2020, we issued Ms. Shane a warrant to purchase <ix:nonFraction id="fid_1089" contextRef="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember" name="us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">93,750</ix:nonFraction> 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 $<ix:nonFraction id="fid_1092" contextRef="AsOf2020-10-01_tomz_TwoThousandSixteenEquityPlanMember" name="us-gaap:SaleOfStockPricePerShare" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">7.06</ix:nonFraction> on the date of grant in lieu of the warrant grant and the <ix:nonFraction id="fid_1093" contextRef="AsOf2020-10-01_tomz_TwoThousandSixteenEquityPlanMember" name="tomz:WarrantsCancelled" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">93,750</ix:nonFraction> warrants were cancelled. Ms. Shane acknowledged that the <ix:nonFraction id="fid_1617" contextRef="From2021-01-01to2021-12-31_tomz_TwoThousandSixteenEquityPlanMember" name="us-gaap:StockIssuedDuringPeriodSharesOther" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">31,250</ix:nonFraction> 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 $<ix:nonFraction id="fid_1074" contextRef="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember" name="us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,000</ix:nonFraction> per month as a vehicle allowance. The initial term of&#160;her employment agreement is <ix:nonNumeric id="fid_1081" contextRef="From2020-09-01to2020-09-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember" name="tomz:TermOfAgreement">three years</ix:nonNumeric>, 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Agreements with Directors</em></strong></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 0px 0px 0in;text-indent:45px">In December 2017, we increased the annual fee to the members of our Board to $<ix:nonFraction id="fid_1075" 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_1076" 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">For the year ended December 31, 2020, we issued an aggregate of <ix:nonFraction id="fid_1078" contextRef="From2020-01-01to2020-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_1079" contextRef="From2020-01-01to2020-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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">For the year ended December 31, 2021, we issued an aggregate of <ix:nonFraction id="fid_1077" 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_1080" 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;text-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In June 2020 we entered into a manufacturing agreement with Planet Innovation Products, Pty Ltd (&#8220;PI&#8221;). The agreement does not provide for any minimum purchase commitments and is for a term of <ix:nonNumeric id="fid_1082" contextRef="From2020-09-01to2020-09-22_tomz_ExecutiveAgreementsWithElissaJShaneMember" name="tomz:TermOfAgreement">three years</ix:nonNumeric>. The agreement also provides for a warranty against product defects.</p></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-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="#toc1">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_901ac4"><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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In May 2020 we entered into an agreement for a cloud computing service contract. The contract provides for annual payments in the amount of $<ix:nonFraction id="fid_1094" 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 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_701" contextRef="From2021-01-01to2021-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:85%" 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><span style="text-decoration:underline">Year Ended</span></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"><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></tr><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, 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%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_836" contextRef="AsOf2021-09-30" name="us-gaap:ContractualObligationDueInNextTwelveMonths" 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, 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_837" contextRef="AsOf2021-09-30" 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:#cceeff"><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_838" contextRef="AsOf2021-09-30" 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:#ffffff"><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_839" contextRef="AsOf2021-09-30" 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:#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: 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_840" contextRef="AsOf2021-09-30" name="us-gaap:ContractualObligation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">90,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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong><em>Other Agreements</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-indent:45px">TOMI Service Network (&#8220;TSN&#8221;) is a national service network composed of existing full-service restoration industry specialists that have entered initially into licensing agreements with us to become Primary Service Providers (&#8220;PSPs&#8221;). The licensing agreements originally granted protected territories to PSPs to perform services using our SteraMist<sup>&#174;</sup> platform of products and also provide for potential job referrals to PSPs whereby we are entitled to referral fees. Additionally, the agreement provides for commissions due to PSPs for equipment and solution sales they facilitate to other service providers in their respective territories. As part of these agreements, we are obligated to provide to the PSPs various training, ongoing support and facilitate a referral network call center. As of December 31, 2021, we have 205 network companies in TSN. The nature and terms of our TSN agreements may represent multiple deliverable arrangements. Each of the deliverables in these arrangements typically represent a separate unit of accounting. There is no exclusivity in our TSN network.</p></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_656" contextRef="From2021-01-01to2021-12-31" name="us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</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">Accrued expenses and other current liabilities consisted of the following at: </p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><ix:nonNumeric id="fid_702" contextRef="From2021-01-01to2021-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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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_841" contextRef="AsOf2021-09-30" 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><td style="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_842" contextRef="AsOf2020-12-31" name="us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">151,709</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 0in">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_843" contextRef="AsOf2021-09-30" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_844" contextRef="AsOf2020-12-31" name="us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">84,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 0in">Director 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_845" contextRef="AsOf2021-09-30" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_846" contextRef="AsOf2020-12-31" name="tomz:DirectorFeesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">41,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 0px 0px 0in">Sales Tax 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_847" contextRef="AsOf2021-09-30" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_848" contextRef="AsOf2020-12-31" name="tomz:SalesTaxPayable" format="ixt:numdotdecimal" decimals="0" unitRef="USD">9,784</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 0in">Income Taxes Payable (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="width:1%;white-space: nowrap;"><p style="font-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_849" contextRef="AsOf2021-09-30" name="us-gaap:AccruedIncomeTaxes" 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_850" contextRef="AsOf2020-12-31" name="us-gaap:AccruedIncomeTaxes" format="ixt:numdotdecimal" decimals="0" unitRef="USD">77,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 0in">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_851" contextRef="AsOf2021-09-30" 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_852" contextRef="AsOf2020-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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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_853" contextRef="AsOf2021-09-30" 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><td style="width:1%;white-space: 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_854" contextRef="AsOf2020-12-31" name="us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent" format="ixt:numdotdecimal" decimals="0" unitRef="USD">70,106</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 0in">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_855" contextRef="AsOf2021-09-30" 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><td style="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_856" contextRef="AsOf2020-12-31" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">501,849</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_657" contextRef="From2021-01-01to2021-12-31" name="us-gaap:GuaranteesTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 14. ACCRUED WARRANTY</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: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;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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_703" contextRef="From2021-01-01to2021-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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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_857" 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><td style="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_858" contextRef="AsOf2019-12-31" name="us-gaap:ExtendedProductWarrantyAccrual" 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 0px 0px 0in">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_859" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_860" contextRef="From2020-01-01to2020-12-31" name="us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease" format="ixt:numdotdecimal" decimals="0" unitRef="USD">101,041</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 0in">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_861" 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><td style="width:1%;white-space: 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_862" contextRef="From2020-01-01to2020-12-31" name="tomz:SettlementOfWarrantyClaims" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">63,041</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 0in">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_863" 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><td style="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_864" contextRef="AsOf2020-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:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_658" contextRef="From2021-01-01to2021-12-31" name="tomz:LoansPayableDisclosureTextBlock" escape="true" continuedAt="cont_631133"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 15. LOAN PAYABLE</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:45px">On April 21, 2020, we received $<ix:nonFraction id="fid_1095" contextRef="AsOf2020-04-21" name="tomz:ProceedsFromLoanFundingPaycheckProtectionProgram" format="ixt:numdotdecimal" decimals="0" unitRef="USD">410,700</ix:nonFraction> in loan funding from the Paycheck Protection Program (the "PPP") established pursuant to the recently enacted Coronavirus Aid, Relief, and Economic Security Act of 2020 (the "CARES Act") and administered by the U.S. Small Business Administration ("SBA"). The unsecured loan (the "PPP Loan") is evidenced by a promissory note of the Company, dated April 21, 2020 (the "Note") in the principal amount of $<ix:nonFraction id="fid_1647" contextRef="AsOf2020-04-21" name="tomz:UnsecuredLoanPrincipalAmountOfCityNationalBank" format="ixt:numdotdecimal" decimals="0" unitRef="USD">410,700</ix:nonFraction> with City National Bank (the "Bank"), the lender. </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-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="#toc1">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_631133"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Under the terms of the Note and the PPP Loan, interest accrues on the outstanding principal at the rate of <ix:nonFraction id="fid_1097" contextRef="AsOf2020-04-21" name="us-gaap:DebtInstrumentInterestRateStatedPercentage" decimals="INF" unitRef="Pure" scale="-2">1.0</ix:nonFraction>% per annum. The term of the Note is two years, though it may be payable sooner in connection with an event of default under the Note. </p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In May of 2021, the loan principal and related interest was forgiven and we recognized a gain upon debt extinguishment in our statement of operations in the amount of $<ix:nonFraction id="fid_1096" contextRef="From2021-01-01to2021-12-31" name="tomz:GainsLossOnExtinguishmentOfDebt" format="ixt:numdotdecimal" decimals="0" unitRef="USD">414,583</ix:nonFraction> for the year ended December 31, 2021.</p></ix:continuation><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_659" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxDisclosureTextBlock" escape="true" continuedAt="cont_cbc123"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 16. INCOME TAXES</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:45px"><strong>The Company&#8217;s income tax expense (benefit) consisted of:</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><ix:nonNumeric id="fid_704" contextRef="From2021-01-01to2021-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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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: #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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">Current:</p></td><td 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">Federal</p></td><td style="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_913" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CurrentFederalTaxExpenseBenefit" 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%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_912" contextRef="From2020-01-01to2020-12-31" name="us-gaap:CurrentFederalTaxExpenseBenefit" 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:#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%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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="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;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_914" contextRef="From2020-01-01to2020-12-31" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:numdotdecimal" decimals="0" unitRef="USD">77,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">Foreign</p></td><td style="width:1%;white-space: 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_916" 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%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: 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_915" contextRef="From2020-01-01to2020-12-31" name="us-gaap:CurrentForeignTaxExpenseBenefit" 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%;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_918" contextRef="From2021-01-01to2021-12-31" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">74,000</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:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_917" contextRef="From2020-01-01to2020-12-31" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:numdotdecimal" decimals="0" unitRef="USD">77,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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Deferred:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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">Federal </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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="From2021-01-01to2021-12-31" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" 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_920" contextRef="From2020-01-01to2020-12-31" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" 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">State</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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="From2021-01-01to2021-12-31" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" 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_922" contextRef="From2020-01-01to2020-12-31" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" 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:#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%;white-space: 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_925" 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%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: 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_924" contextRef="From2020-01-01to2020-12-31" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" 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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: 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_927" 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%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: 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_926" contextRef="From2020-01-01to2020-12-31" name="us-gaap:DeferredIncomeTaxExpenseBenefit" 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 0px 0px 0in">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_929" 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;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_928" contextRef="From2020-01-01to2020-12-31" name="tomz:ProvisionForIncomeTaxes" format="ixt:numdotdecimal" decimals="0" unitRef="USD">77,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 0px 0px 0in">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"><strong>The Company&#8217;s net income (loss) before income tax consisted of:</strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><ix:nonNumeric id="fid_705" contextRef="From2021-01-01to2021-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"><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 0px 0px 0in; 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 0px 0px 0in; 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;"><strong>December 31,</strong></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></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 0px 0px 0in; 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></td><td style="BORDER-BOTTOM: #000000 1px solid;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 15px">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;">(<span style="background-color:#ffffff">4,509,585</span></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_931" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,468,166</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">Foreign</p></td><td style="width:1%;white-space: 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_934" 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%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: 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_933" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" 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 0px 0px 0in">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;">(<span style="background-color:#ffffff">4,509,585</span></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_935" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,468,166</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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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></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-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="#toc1">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_cbc123" continuedAt="cont_41494a"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">The reconciliation of taxes at the federal and state statutory rate to our provision for income taxes for the years ended December&#160;31, 2021 and 2020 was as follows:</p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_706" contextRef="From2021-01-01to2021-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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" 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><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>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: #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>2020</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="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_938" 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><td style="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_937" contextRef="From2020-01-01to2020-12-31" name="tomz:IncomeLossBeforeIncomeTax" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,468,166</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">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_939" contextRef="From2020-01-01to2020-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_940" 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 style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income tax expense 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_942" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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="From2020-01-01to2020-12-31" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,251,086</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">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_945" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_944" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">2,050,485</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 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%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_947" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_946" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes" 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">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_949" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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="From2020-01-01to2020-12-31" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" format="ixt:numdotdecimal" decimals="0" unitRef="USD">876,676</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%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_951" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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">Meals and Entertainment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_953" contextRef="From2021-01-01to2021-12-31" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment" 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_952" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,300</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</p></td><td style="width:1%;white-space: 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_955" 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><td style="width:1%;white-space: 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_954" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeTaxReconciliationOtherReconcilingItems" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">1,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:#cceeff"><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_957" 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><td style="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_956" contextRef="From2020-01-01to2020-12-31" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:numdotdecimal" decimals="0" unitRef="USD">77,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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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_707" contextRef="From2021-01-01to2021-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 0px 0px 0in; 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 0px 0px 0in; 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: #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 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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_960" 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><td style="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_959" contextRef="AsOf2020-12-31" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" format="ixt:numdotdecimal" decimals="0" unitRef="USD">109,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">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_962" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_961" contextRef="AsOf2020-12-31" name="tomz:DeferredTaxAssetsAccruedVacation" format="ixt:numdotdecimal" decimals="0" unitRef="USD">82,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">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_963" contextRef="AsOf2020-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_964" 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></tr><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">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_966" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_965" contextRef="AsOf2020-12-31" name="us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD">412,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">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_968" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_967" contextRef="AsOf2020-12-31" name="tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">290,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_970" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_969" contextRef="AsOf2020-12-31" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,100,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_972" 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><td style="width:1%;white-space: 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_971" contextRef="AsOf2020-12-31" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD">3,530,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_974" 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><td style="width:1%;white-space: 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_973" contextRef="AsOf2020-12-31" name="us-gaap:DeferredTaxAssetsNet" format="ixt:numdotdecimal" decimals="0" unitRef="USD">482,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;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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 0in">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_977" 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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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_976" contextRef="AsOf2020-12-31" name="tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets" format="ixt:numdotdecimal" decimals="0" unitRef="USD" sign="-">290,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_979" 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><td style="width:1%;white-space: 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_978" contextRef="AsOf2020-12-31" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" format="ixt:numdotdecimal" decimals="0" unitRef="USD">192,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_981" 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><td style="width:1%;white-space: 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_980" contextRef="AsOf2020-12-31" name="us-gaap:DeferredTaxLiabilities" format="ixt:numdotdecimal" decimals="0" unitRef="USD">482,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 0px 0px 15px">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_983" 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><td style="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_982" contextRef="AsOf2020-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 0px 0px 0in;text-indent:45px">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, 2021, we recorded a valuation allowance of $<ix:nonFraction id="fid_1650" contextRef="AsOf2020-12-31" name="tomz:NetDeferredTaxAssetsValuationAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD">4,941,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_1649" contextRef="From2021-01-01to2021-12-31" name="tomz:NetDeferredTaxAssetsIncreasedValuationAllowance" format="ixt:numdotdecimal" decimals="0" unitRef="USD">1,411,000</ix:nonFraction> during the year ended December 31, 2021, 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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, 2021 and 2020 of approximately $<ix:nonFraction id="fid_1098" contextRef="AsOf2021-12-31" name="us-gaap:OperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">15,312,000</ix:nonFraction> and $<ix:nonFraction id="fid_1099" contextRef="AsOf2020-12-31" name="us-gaap:OperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">11,465,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, 2021 and 2020 of approximately $<ix:nonFraction id="fid_1100" contextRef="AsOf2021-12-31" name="tomz:StateNetOperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">11,881,000</ix:nonFraction> and $<ix:nonFraction id="fid_1101" contextRef="AsOf2020-12-31" name="tomz:StateNetOperatingLossCarryforwards" format="ixt:numdotdecimal" decimals="0" unitRef="USD">9,663,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></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-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="#toc1">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_41494a"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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, 2021, and 2020, 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;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_660" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ConcentrationRiskDisclosureTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 17. CUSTOMER CONCENTRATION</strong></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 0px 0px 0in;text-indent:45px">The Company had certain customers whose accounts receivable balances individually represented <ix:nonFraction id="fid_1102" contextRef="From2021-01-01to2021-12-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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">As of December 31, 2021, three customers accounted for <ix:nonFraction id="fid_1103" contextRef="From2021-01-01to2021-12-31_tomz_ThreeCustomersMember" 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">As of December 31, 2020, three customers accounted for <ix:nonFraction id="fid_1104" contextRef="From2021-01-01to2021-12-31_tomz_TwoCustomerMember" name="us-gaap:ConcentrationRiskPercentage1" decimals="INF" unitRef="Pure" scale="-2">36</ix:nonFraction>% of our gross accounts receivable.</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 0px 0px 0in;text-indent:45px">For the years ended December 31, 2021 and 2020, we had no customers who represented <ix:nonFraction id="fid_1102-2b2ea0" contextRef="From2021-01-01to2021-12-31" name="us-gaap:ConcentrationRiskPercentage1" decimals="INF" unitRef="Pure" scale="-2">10</ix:nonFraction>% or more of revenue.</p></ix:nonNumeric><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_661" contextRef="From2021-01-01to2021-12-31" name="us-gaap:SubsequentEventsTextBlock" escape="true"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 18. SUBSEQUENT EVENTS</strong></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 0px 0px 0in;text-indent:45px">Pursuant to the agreement with our Board of Directors, in January 2022, we issued an aggregate of <ix:nonFraction id="fid_1106" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_BoardOfDirectorsChairmanMember" name="us-gaap:ConversionOfStockSharesIssued1" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">51,750</ix:nonFraction> shares of common stock valued at approximately $<ix:nonFraction id="fid_1108" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_BoardOfDirectorsChairmanMember" name="us-gaap:ConversionOfStockAmountIssued1" format="ixt:numdotdecimal" decimals="0" unitRef="USD">54,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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In January 2022 we issued an option to purchase <ix:nonFraction id="fid_1109" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember" name="us-gaap:StockRepurchasedDuringPeriodShares" 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_1111" contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember" name="us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" 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_1113" contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember" name="tomz:StockOptionValued" format="ixt:numdotdecimal" decimals="0" unitRef="USD">190,239</ix:nonFraction> and has a term of <ix:nonNumeric id="fid_1115" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember" 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_1119" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember" name="tomz:Volatility" decimals="INF" unitRef="Pure" scale="-2">151</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1120" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember" name="tomz:ExpectedDividendYield" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1121" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember" name="tomz:RiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">1.75</ix:nonFraction>%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1651" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember" name="tomz:GrantDateFairValuePerShareOfCommonStock" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.10</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In January 2022 we issued an option to purchase <ix:nonFraction id="fid_1129" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:numdotdecimal" decimals="0" unitRef="Shares">57,500</ix:nonFraction> shares of common stock to our Chief Operating Officer at an exercise price of $<ix:nonFraction id="fid_1122" contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember" name="us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" 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_1124" contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember" name="tomz:StockOptionValued" format="ixt:numdotdecimal" decimals="0" unitRef="USD">63,413</ix:nonFraction> and has a term of <ix:nonNumeric id="fid_1130" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember" 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_1131" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember" name="tomz:Volatility" decimals="INF" unitRef="Pure" scale="-2">151</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1132" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember" name="tomz:ExpectedDividendYield" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1133" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember" name="tomz:RiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">1.75</ix:nonFraction>%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1652" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember" name="tomz:GrantDateFairValuePerShareOfCommonStock" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.10</ix:nonFraction>.</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 0px 0px 0in;text-indent:45px">In January 2022 we issued an option to purchase <ix:nonFraction id="fid_1141" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember" name="us-gaap:StockRepurchasedDuringPeriodShares" 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_1134" contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember" name="us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" 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_1136" contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember" name="tomz:StockOptionValued" format="ixt:numdotdecimal" decimals="0" unitRef="USD">44,113</ix:nonFraction> and has a term of <ix:nonNumeric id="fid_1142" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember" 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_1143" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember" name="tomz:Volatility" decimals="INF" unitRef="Pure" scale="-2">151</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1144" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember" name="tomz:ExpectedDividendYield" decimals="INF" unitRef="Pure" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1145" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember" name="tomz:RiskFreeInterestRate" decimals="INF" unitRef="Pure" scale="-2">1.75</ix:nonFraction>%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $<ix:nonFraction id="fid_1654" contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember" name="tomz:GrantDateFairValuePerShareOfCommonStock" format="ixt:numdotdecimal" decimals="INF" unitRef="USDPShares">1.10</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-29</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-4.2
<SEQUENCE>2
<FILENAME>tomz_ex42.htm
<DESCRIPTION>DESCRIPTION OF CAPITAL STOCK
<TEXT>
<html><head><title>tomz_ex42.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: left; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:right;"><strong>EXHIBIT 4.2</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>DESCRIPTION OF CAPITAL STOCK</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">The following description of the material terms of the common stock and preferred stock of TOMI Environmental Solutions, Inc. (the &#8220;Company&#8221;) is not complete and is qualified in its entirety by reference to the Company&#8217;s amended and restated articles of incorporation and amended bylaws, which are attached as Exhibits 3.2, 3.3, 3.4 and 3.5, respectively, to this Annual Report on Form 10-K of which this exhibit is a part and are incorporated herein by reference.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong>Authorized Capital Stock</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">We are currently authorized to issue 250,000,000 shares of common stock, par value $0.01 per share, 1,000,000 shares of convertible $0.01 preferred A stock, par value $0.01 per share, and 4,000 shares of Series B preferred stock, with a stated value of $1,000 per share. As of February 25, 2022, we had approximately 16,811,513 shares of common stock outstanding, held by approximately 194 shareholders of record, although we believe there were approximately 5,350 beneficial owners of our common stock, and 63,750 shares of series A preferred stock outstanding held by one shareholder, and no shares of the series B preferred stock outstanding.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong>Common Stock</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">The holders of our common stock are entitled to one vote per share on all matters submitted to a vote of our shareholders. We have not provided for cumulative voting for the election of directors in our amended and restated articles of incorporation or amended bylaws. The holders of our common stock are entitled to receive ratably the dividends out of funds legally available if our board of directors, or Board, in its discretion, determines to issue dividends and then only at the times and in the amounts that our Board may determine. The common stock is not entitled to redemption rights, preemptive rights, conversion rights, and it is not subject to any sinking fund provisions. The outstanding shares of common stock are fully paid and non-assessable. The outstanding shares of common stock are not liable to further call or to assessment by us. If we become subject to a liquidation event, dissolution or winding-up, the assets legally available for distribution to our shareholders would be distributable ratably among the holders of the common stock and any participating preferred stock outstanding at that time, subject to prior satisfaction of all outstanding debt and liabilities and the preferential rights of and the payment of liquidation preferences, if any, on any outstanding shares of preferred stock. The rights, powers, preferences and privileges of holders of common stock are subordinate to, and may be adversely affected by, the rights of the holders of shares of the preferred stock and any series of preferred stock which may be designated and issued in the future. No shareholders hold any registration rights.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">&nbsp;</p> <table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td class="hpbhr">&nbsp;</td></tr> <tr style="height:15px"> <td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">1</td></tr> <tr style="height:15px"> <td><p style='page-break-after: always'></p></td></tr> <tr style="height:15px"> <td>&nbsp;</td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong>Preferred Stock</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">The rights, preferences and privileges of preferred stock could include dividend rights, conversion rights, voting rights, redemption rights, liquidation preferences, the number of shares constituting any class or series and the designation of the class or series. Terms selected by our Board of Directors in the future could decrease the amount of earnings and assets available for distribution to holders of shares of common stock or adversely affect the rights and powers, including voting rights, of the holders of shares of common stock without any further vote or action by the stockholders. As a result, the rights of holders of our common stock will be subject to, and may be adversely affected by, the rights of the holders of the convertible $0.1 preferred A stock and Series B Preferred Stock or any other preferred stock that may be issued by us in the future, which could have the effect of decreasing the market price of our common stock.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong><em>Series A Preferred Stock</em></strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">We are authorized to issue 1,000,000 shares of convertible $0.01 preferred A stock, par value $0.01 per share, of which 63,750 shares were outstanding as of February 25, 2022. Holders of Series A Preferred Stock are not entitled to receive dividends. Each share of Series A Preferred Stock is convertible into one share of common stock. </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong><em>Series B Preferred Stock</em></strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">We are authorized to issue 4,000 shares of Series B Preferred Stock. Each share of Series B Preferred Stock is convertible into 200 shares of common stock and have a stated value per share of $1,000. The Series B Preferred Stock shall carry a cumulative dividend of 7.5% per annum and shall be senior in liquidation preference to the common stock and equal in liquidation preference to all other authorized class of preferred stock. The dividend is payable in-kind, at the election of the Company.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong>Dividend Policy</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">Our Board has never declared or paid any cash dividends, and our Board does not currently intend to pay any cash dividends for the foreseeable future. Our Board expects to retain future earnings, if any, to fund the development and growth of the Company&#8217;s business. Any future determination to pay dividends will be at the discretion of our Board and will depend upon, among other factors, the Company&#8217;s financial condition, operating results, current and anticipated cash needs, plans for expansion and other factors that our Board may deem relevant.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong>Anti-Takeover Provisions of the Company&#8217;s Organizing Documents</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">Our amended and restated articles of incorporation and our amended bylaws include a number of provisions that could deter takeovers or delay or prevent changes in control, as well as changes in our Board or management team, including the following:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><em>Authorized but Unissued Shares</em>. The authorized but unissued shares of the common stock and preferred stock will be available for future issuance without shareholder approval, subject to applicable law and the rules of The Nasdaq Stock Market LLC. These additional shares may be used for a variety of corporate purposes, including future public offerings to raise additional capital, acquisitions, and employee benefit plans. The existence of authorized but unissued shares of common stock or preferred stock may enable our Board to render more difficult or to discourage an attempt to obtain control of us by means of a merger, tender offer, proxy contest or otherwise.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">&nbsp;</p> <table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td class="hpbhr">&nbsp;</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>&nbsp;</td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><em>No Cumulative Voting</em>. Our shareholders do not have the right to cumulate votes in the election of directors of our Board, therefore allowing the holders of a majority of the shares of common stock entitled to vote in any election of directors of our Board to elect all of the directors standing for election, if they should so choose.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><em>Shareholder Action; Special Meeting of Shareholders</em>. Special meetings of our shareholders may be called only by a majority of our Board, thus prohibiting a shareholder from calling a special meeting, except that, pursuant to the Florida Business Corporation Act, or FBCA, &#167; 607.072, shareholders holding 10% or more of the votes entitled to be cast may call a special meeting. These limitation might delay the ability of the Company&#8217;s shareholders to force consideration of a proposal.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">Each of the foregoing provisions may make it more difficult for our existing shareholders to replace our Board as well as for another party to obtain control of us by replacing our Board. Since our Board has the power to retain and discharge our officers, these provisions could also make it more difficult for existing shareholders or another party to effect a change in management.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong>Anti-Takeover Provisions under Florida Law</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">We are governed by two provisions of the FBCA, which may deter or frustrate takeovers of Florida corporations.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">The Florida Control Share Act (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.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">The Florida Affiliated Transactions Act (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 amended and restated articles of incorporation.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">&nbsp;</p> <table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td class="hpbhr">&nbsp;</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>&nbsp;</td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong>Limitation of Liability and Indemnification</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">Florida law also authorizes us to indemnify directors, officers, employees and agents under certain circumstances and to limit the personal liability of corporate directors for monetary damages, except that we may not indemnify a director or officer or advance expenses to a director or officer if a judgment or other final adjudication establishes that his or her actions were material to the cause of action so adjudicated and constitute: (a) willful or intentional misconduct or a conscious disregard for the best interests of the corporation in a proceeding by or in right of the corporation to procure a judgment in its favor or in a proceeding by or in the right of a shareholder, (b) a transaction in which the director or officer derived an improper personal benefit, (c) a violation of the criminal law, unless the director or officer had reasonable cause to believe his or her conduct was lawful or had no reasonable cause to believe his or her conduct was unlawful, or (d) in the case of a director, a circumstance under which the director would be liable under the FBCA for an unlawful distribution. Our amended bylaws do not provide for the indemnification of our current and former directors and officers, thus the only right of indemnification that our current and former directors and officers have is a right of indemnification should such director or officer succeed against a claim brought against them because they were a director or officer as set out under FBCA &#167; 607.0852. We have obtained a directors&#8217; and officers&#8217; liability insurance policy covering its current and former directors and officers.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong>Listing</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">Our common stock is listed on The Nasdaq Capital Market under the symbol &#8220;TOMZ.&#8221;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;"><strong>Transfer Agent and Registrar</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">The transfer agent and registrar for our common stock is Continental Stock Transfer &amp; Trust Company.</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:left;">&nbsp;</p> <table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td class="hpbhr">&nbsp;</td></tr> <tr style="height:15px"> <td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">4</td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-21.1
<SEQUENCE>3
<FILENAME>tomz_ex211.htm
<DESCRIPTION>SUBSIDIARIES OF THE REGISTRANT
<TEXT>
<html><head><title>tomz_ex211.htm</title><!--Document created using EDGARMaster--></head><body style="COLOR: #000000; TEXT-ALIGN: left; 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; text-align:left;">&nbsp; &nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 36pt; text-align:center;"><strong>Subsidiaries of TOMI Environmental Solutions, Inc.</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;&nbsp; </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 36pt; text-align:left;">TOMI Environmental Solutions, Inc., a Nevada corporation</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>4
<FILENAME>tomz_ex311.htm
<DESCRIPTION>CERTIFICATION OF CHIEF EXECUTIVE OFFICER
<TEXT>
<html><head><title>tomz_ex311.htm</title><!--Document created using EDGARMaster--></head><body style="COLOR: #000000; TEXT-ALIGN: left; 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;&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; text-align:left;">I, Halden S. Shane, certify that:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&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">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">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="margin:0px">2.</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="margin:0px">3.</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="margin:0px">4.</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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>&nbsp; <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">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">&nbsp;</p></td> <td> <p style="margin:0px;text-indent:30px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="margin:0px">(b)</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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">&nbsp;</p></td> <td> <p style="margin:0px;text-indent:30px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="margin:0px">(c)</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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">&nbsp;</p></td> <td> <p style="margin:0px;text-indent:30px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="margin:0px">(d)</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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>&nbsp; <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">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>&nbsp; <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">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="margin:0px">&nbsp;</p></td> <td> <p style="margin:0px;text-indent:30px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="margin:0px">(b)</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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>&nbsp; <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Dated: March 29, 2022</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&nbsp;</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:47%;"> <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:30%;vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">/s/ HALDEN S. SHANE</p></td> <td style="width:15%;"> <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>Halden S. Shane</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Chief Executive Officer</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Principal Executive Officer)</strong>&nbsp;</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr></table><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>5
<FILENAME>tomz_ex312.htm
<DESCRIPTION>CERTIFICATION OF CHIEF FINANCIAL OFFICER
<TEXT>
<html><head><title>tomz_ex312.htm</title><!--Document created using EDGARMaster--></head><body style="COLOR: #000000; TEXT-ALIGN: left; 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:left;">&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; &nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">I, Nick Jennings, certify that:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&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">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">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="margin:0px">2.</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="margin:0px">3.</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="margin:0px">4.</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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>&nbsp; <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">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">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="margin:0px">(b)</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="margin:0px">(c)</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="margin:0px">(d)</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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>&nbsp; <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">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>&nbsp; <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">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="margin:0px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td> <td> <p style="margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="margin:0px">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="margin:0px">(b)</p></td> <td style="vertical-align:top;"> <p style="margin:0px">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>&nbsp; <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">Dated: March 29, 2022</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">&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/ 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="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; 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;">&nbsp;<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; text-align:left;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>6
<FILENAME>tomz_ex321.htm
<DESCRIPTION>CERTIFICATIONS OF CHIEF EXECUTIVE OFFICER
<TEXT>
<html><head><title>tomz_ex321.htm</title><!--Document created using EDGARMaster--></head><body style="COLOR: #000000; TEXT-ALIGN: left; 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; text-align:left;">&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></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; text-align:left;">&nbsp;&nbsp; </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:left;">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, 2020: (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; text-align:left;">&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="font-size:10pt;font-family:times new roman;margin:0px">Date: March 29, 2022</p></td> <td style="width:3%;vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">By:</p></td> <td style="BORDER-BOTTOM: #000000 1px solid;width:35%;vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px"><em>/s/ </em>HALDEN S. SHANE</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></td> <td></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Halden S. Shane</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></td> <td></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Chief Executive Officer</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></td> <td></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>(Principal Executive Officer)</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></td> <td></td> <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></tr> <tr style="height:15px"> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Date: March 29, 2022</p></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">By:</p></td> <td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">/<em>s/ </em>NICK JENNINGS</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td></td> <td></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px"><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></td> <td></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Chief Financial Officer</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></td> <td></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>(Principal Financial and 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; text-align:left;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>7
<FILENAME>tomz-20211231.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/29/2022-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2022 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/2021" xmlns:us-gaap-att="http://fasb.org/us-gaap/attributes" xmlns:sic="http://xbrl.sec.gov/sic/2021" xmlns:exch="http://xbrl.sec.gov/exch/2021" 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/2021" xmlns:us-types="http://fasb.org/us-types/2021-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2021" 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/2021" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:srt-types="http://fasb.org/srt-types/2021-01-31" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:srt-roles="http://fasb.org/srt-roles/2021-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2021q4" 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/2021-01-31" xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31" xmlns:tomz="http://tomz.com/20211231" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://tomz.com/20211231">
  <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/LoanPayable" id="LoanPayable">
        <link:definition>000021 - Disclosure - LOAN PAYABLE</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>000022 - 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>000023 - 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>000024 - 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>000025 - 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>000026 - 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>000027 - 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>000028 - 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>000029 - 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>000030 - 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>000031 - 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/HareholdersEquityTables" id="HareholdersEquityTables">
        <link:definition>000032 - Disclosure - HAREHOLDERS' 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>000033 - 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>000034 - 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>000035 - 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>000036 - 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>000037 - 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>000038 - 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>000039 - 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>000040 - 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>000041 - 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>000042 - 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>000043 - 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>000044 - 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>000045 - 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>000046 - 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>000047 - 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>000048 - 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>000049 - 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>000050 - 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>000051 - 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>000052 - 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>000053 - 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>000054 - 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>000055 - 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>000056 - 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>000057 - 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>000058 - 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>000059 - 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>000060 - 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>000061 - 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>000062 - 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/CommitmentsAndContingenciesDetailsNarrative" id="CommitmentsAndContingenciesDetailsNarrative">
        <link:definition>000063 - Disclosure - COMMITMENTS AND CONTINGENCIES (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>000064 - 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>000065 - 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>000066 - 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>000067 - 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/LoanPayableDetailsNarrative" id="LoanPayableDetailsNarrative">
        <link:definition>000068 - Disclosure - LOAN PAYABLE (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/IncomeTaxesDetails" id="IncomeTaxesDetails">
        <link:definition>000069 - 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>000070 - 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>000071 - 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>000072 - 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>000073 - 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>000074 - 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>000075 - 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-20211231_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-20211231_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-20211231_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-20211231_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/2021" schemaLocation="https://xbrl.sec.gov/country/2021/country-2021.xsd" />
  <import namespace="http://xbrl.sec.gov/currency/2021" schemaLocation="https://xbrl.sec.gov/currency/2021/currency-2021.xsd" />
  <import namespace="http://xbrl.sec.gov/dei/2021q4" schemaLocation="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.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/2021" schemaLocation="https://xbrl.sec.gov/exch/2021/exch-2021.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/2021" schemaLocation="https://xbrl.sec.gov/naics/2021/naics-2021.xsd" />
  <import namespace="http://xbrl.sec.gov/sic/2021" schemaLocation="https://xbrl.sec.gov/sic/2021/sic-2021.xsd" />
  <import namespace="http://fasb.org/srt-roles/2021-01-31" schemaLocation="https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd" />
  <import namespace="http://fasb.org/srt-types/2021-01-31" schemaLocation="https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.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/2021" schemaLocation="https://xbrl.sec.gov/stpr/2021/stpr-2021.xsd" />
  <import namespace="http://fasb.org/us-roles/2021-01-31" schemaLocation="https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd" />
  <import namespace="http://fasb.org/us-types/2021-01-31" schemaLocation="https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd" />
  <import namespace="http://fasb.org/srt/2021-01-31" schemaLocation="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd" />
  <import namespace="http://fasb.org/us-gaap/2021-01-31" schemaLocation="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd" />
  <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_ConversionOfNotesPayableIntoCommonStockShares" name="ConversionOfNotesPayableIntoCommonStockShares" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ConversionOfNotesPayableIntoCommonStockAmount" name="ConversionOfNotesPayableIntoCommonStockAmount" 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_ReverseStockSplitAdjustmentShares" name="ReverseStockSplitAdjustmentShares" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ReverseStockSplitAdjustmentAmount" name="ReverseStockSplitAdjustmentAmount" 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_DebtInstrumentIncreasesAccruedInterest" name="DebtInstrumentIncreasesAccruedInterest" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" 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_RepaymentOfPrincipalBalanceOnConvertibleNote" name="RepaymentOfPrincipalBalanceOnConvertibleNote" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AccruedEquityCompensation" name="AccruedEquityCompensation" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_EquipmentNetTransferredToInventory" name="EquipmentNetTransferredToInventory" nillable="true" xbrli:balance="debit" 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_LoansPayableDisclosureTextBlock" name="LoansPayableDisclosureTextBlock" 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_InterestOnConvertibleDebt" name="InterestOnConvertibleDebt" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" 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_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_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_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_ExercisePrice" name="ExercisePrice" 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_Preferredstockparorstatedvaluepershare" name="Preferredstockparorstatedvaluepershare" nillable="true" xbrli:periodType="instant" type="num:perShareItemType" 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_CommonStockSharesFullyVestedAmount" name="CommonStockSharesFullyVestedAmount" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares" name="CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount" name="CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CommonStockSharesIssuedUponExerciseOfOptionShares" name="CommonStockSharesIssuedUponExerciseOfOptionShares" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount" name="CommonStockSharesIssuedUponExerciseOfOptionAmount" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" 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_WarrantsIssuedUponPurchaseShareOfCommonStock" name="WarrantsIssuedUponPurchaseShareOfCommonStock" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_FairValueOfStockWarrant" name="FairValueOfStockWarrant" nillable="true" xbrli:balance="debit" 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_IssuanceOfOptionToPurchaseSharesOfCommonStock" name="IssuanceOfOptionToPurchaseSharesOfCommonStock" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile" name="ReimburseOfExpensesAssociatedWithUseOfAutomobile" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WarrantsCancelled" name="WarrantsCancelled" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" 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_ProceedsFromLoanFundingPaycheckProtectionProgram" name="ProceedsFromLoanFundingPaycheckProtectionProgram" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_GainsLossOnExtinguishmentOfDebt" name="GainsLossOnExtinguishmentOfDebt" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_UnsecuredLoanPrincipalAmountOfCityNationalBank" name="UnsecuredLoanPrincipalAmountOfCityNationalBank" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" 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_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="DilutedNetIncomeorLossMember" id="tomz_DilutedNetIncomeorLossMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" 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="InternationalMember" id="tomz_InternationalMember" 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="PrivatePlacementsMember" id="tomz_PrivatePlacementsMember" 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" />
  <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="ExecutiveAgreementsWithHaldenSShaneMember" id="tomz_ExecutiveAgreementsWithHaldenSShaneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="TwoThousandSixteenEquityPlanMember" id="tomz_TwoThousandSixteenEquityPlanMember" 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="ThreeCustomersMember" id="tomz_ThreeCustomersMember" 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="RangeSevenMember" id="tomz_RangeSevenMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeSixMember" id="tomz_RangeSixMember" 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="RangeThreeMember" id="tomz_RangeThreeMember" 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="RangeOneMember" id="tomz_RangeOneMember" 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="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="WarrantsSixMember" id="tomz_WarrantsSixMember" 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="WarrantsNineMember" id="tomz_WarrantsNineMember" 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="PlacementAgentMember" id="tomz_PlacementAgentMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="OctoberTwoThousandTwentyMember" id="tomz_OctoberTwoThousandTwentyMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="MarchTwentyTwentyMember" id="tomz_MarchTwentyTwentyMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="JulyTwentyTwentyMember" id="tomz_JulyTwentyTwentyMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="JuneTwentyTwentyMember" id="tomz_JuneTwentyTwentyMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="MayTwentyTwentyMember" id="tomz_MayTwentyTwentyMember" 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="AprilTwentyTwentyMember" id="tomz_AprilTwentyTwentyMember" 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="StockWarrantOneMember" id="tomz_StockWarrantOneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="StockWarrantTwoMember" id="tomz_StockWarrantTwoMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="StockWarrantThreeMember" id="tomz_StockWarrantThreeMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="OctoberwentyTwentyMember" id="tomz_OctoberwentyTwentyMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ProductAndServiceRevenueMember" id="tomz_ProductAndServiceRevenueMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RevenueByGeographicRegionMember" id="tomz_RevenueByGeographicRegionMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
</schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>8
<FILENAME>tomz-20211231_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/29/2022-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2022 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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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.sec.gov/dei/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_cbce63" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl_cbce63" xml:lang="en-US">CONDENSED CONSOLIDATED BALANCE SHEETS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c61edb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementTable_lbl_c61edb" xml:lang="en-US">Statement [Table]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_484aaa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementLineItems_lbl_484aaa" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_94b5a4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementClassOfStockAxis_lbl_94b5a4" xml:lang="en-US">Statement Class Of Stock Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_0e8578" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SeriesAPreferredStockMember_lbl_0e8578" 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/2021/elts/us-gaap-2021-01-31.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_e49004" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SeriesBPreferredStockMember_lbl_e49004" 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/2021/elts/us-gaap-2021-01-31.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_e340db" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsAbstract_lbl_e340db" xml:lang="en-US">ASSETS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl_585673" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrentAbstract_lbl_585673" xml:lang="en-US">Current Assets:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_39f0c1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashEquivalentsAtCarryingValue_lbl_39f0c1" xml:lang="en-US">Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d089fc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl_d089fc" xml:lang="en-US">Accounts Receivable - net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_8220ef" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherReceivablesNetCurrent_lbl_8220ef" xml:lang="en-US">Other Receivables</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_670449" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryNet_lbl_670449" xml:lang="en-US">Inventories (Note 3)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_620924" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepositsAssetsCurrent_lbl_620924" xml:lang="en-US">Vendor Deposits (Note 4)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_446e84" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl_446e84" 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_f622e8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AssetsCurrent_lbl_f622e8" xml:lang="en-US">Total Current Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_10" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrent_lbl_10" xml:lang="en-US">[Assets, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_3fc9c5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl_3fc9c5" 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/2021/elts/us-gaap-2021-01-31.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_732d91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsAbstract_lbl_732d91" xml:lang="en-US">Other Assets:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_0c8417" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl_0c8417" xml:lang="en-US">Intangible Assets - net (Note 6)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_bcbbc9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl_bcbbc9" 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/2021/elts/us-gaap-2021-01-31.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_0bd89f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers_lbl_0bd89f" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent_lbl_56be61" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsCurrent_lbl_56be61" 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_dfbcd9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherAssets_lbl_dfbcd9" xml:lang="en-US">Total Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssets_lbl_17" 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_3018e7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Assets_lbl_3018e7" xml:lang="en-US">Total Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Assets_lbl_18" xml:lang="en-US">[Assets]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_0fde90" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl_0fde90" xml:lang="en-US">LIABILITIES AND SHAREHOLDERS' EQUITY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d42bc8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl_d42bc8" 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_acffe1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsPayableCurrent_lbl_acffe1" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_21" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableCurrent_lbl_21" xml:lang="en-US">[Accounts Payable, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_fc13e2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl_fc13e2" 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/2021/elts/us-gaap-2021-01-31.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_63da01" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CustomerDepositsCurrent_lbl_63da01" xml:lang="en-US">Customer Deposits</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d62375" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_d62375" xml:lang="en-US">Current Portion of Long-Term Operating Lease (Note 7)</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_f4e63e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesCurrent_lbl_f4e63e" xml:lang="en-US">Total Current Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_25" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrent_lbl_25" xml:lang="en-US">[Liabilities, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_cca0c4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesNoncurrentAbstract_lbl_cca0c4" xml:lang="en-US">Long-Term Liabilities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermLoansPayable" xlink:label="us-gaap_LongTermLoansPayable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermLoansPayable" xlink:to="us-gaap_LongTermLoansPayable_lbl_d18914" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LongTermLoansPayable_lbl_d18914" xml:lang="en-US">Loan Payable (Note 15)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_968576" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_968576" 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_3b9712" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl_3b9712" xml:lang="en-US">Total Long-Term Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_29" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl_29" 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_091958" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Liabilities_lbl_091958" xml:lang="en-US">Total Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_30" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Liabilities_lbl_30" xml:lang="en-US">[Liabilities]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_07e4ad" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityAbstract_lbl_07e4ad" xml:lang="en-US">Shareholders' Equity:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_03d24e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockValue_lbl_03d24e" xml:lang="en-US">Common stock; par value $0.01 per share, 250,000,000 shares authorized; 19,680,955 and 16,761,513 shares issued and outstanding at September 30, 2021 and December 31, 2020, 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_b00e89" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AdditionalPaidInCapital_lbl_b00e89" xml:lang="en-US">Additional Paid-In Capital</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_33" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapital_lbl_33" xml:lang="en-US">[Additional Paid in Capital]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c734ea" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl_c734ea" 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_2933fb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_StockholdersEquity_lbl_2933fb" xml:lang="en-US">Total Shareholders' Equity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_35" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquity_lbl_35" 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_a7cf2b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl_a7cf2b" xml:lang="en-US">Total Liabilities and Shareholders' Equity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_36" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl_36" xml:lang="en-US">[Liabilities and Equity]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_39b29c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockValue_lbl_39b29c" 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 September 30, 2021 and December 31, 2020</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_3733ea" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_StockholdersEquityAbstract_lbl_3733ea" xml:lang="en-US">Stockholders' Equity:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_8e6fa8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl_8e6fa8" xml:lang="en-US">Common Stock; Par Value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_965bee" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl_965bee" xml:lang="en-US">Common Stock; Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_75ddb8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesIssued_lbl_75ddb8" xml:lang="en-US">Common Stock; Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_9118c6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl_9118c6" xml:lang="en-US">Common Stock; Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_9d6e20" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_9d6e20" 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/2021/elts/us-gaap-2021-01-31.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_5462b6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl_5462b6" 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/2021/elts/us-gaap-2021-01-31.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_bf0402" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesIssued_lbl_bf0402" 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/2021/elts/us-gaap-2021-01-31.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_dbc02e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl_dbc02e" 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/2021/elts/us-gaap-2021-01-31.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_05bda1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementAbstract_lbl_05bda1" xml:lang="en-US">CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_3637a7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Revenues_lbl_3637a7" xml:lang="en-US">Sales, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c4f6ab" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfRevenue_lbl_c4f6ab" 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_628a94" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_GrossProfit_lbl_628a94" xml:lang="en-US">Gross Profit</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_f21beb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostsAndExpensesAbstract_lbl_f21beb" xml:lang="en-US">Operating Expenses:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_aa53e4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProfessionalFees_lbl_aa53e4" xml:lang="en-US">Professional Fees</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_79ffc0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepreciationAndAmortization_lbl_79ffc0" xml:lang="en-US">Depreciation and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_6acdde" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingExpense_lbl_6acdde" xml:lang="en-US">Selling Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c190aa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl_c190aa" xml:lang="en-US">Research and Development</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_46d916" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ConsultingFees_lbl_46d916" xml:lang="en-US">Consulting Fees</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_2a7ec9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherGeneralAndAdministrativeExpense_lbl_2a7ec9" 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_33c91f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingExpenses_lbl_33c91f" xml:lang="en-US">Total Operating Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_aba1eb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingIncomeLoss_lbl_aba1eb" xml:lang="en-US">Income (loss) from Operations</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_6390f7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherIncomeAbstract_lbl_6390f7" xml:lang="en-US">Other Income (Expense):</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c4429d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl_c4429d" xml:lang="en-US">Gain Upon Debt Extinguishment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_1ec5d8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestIncomeOther_lbl_1ec5d8" 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_64c515" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InterestExpense_lbl_64c515" xml:lang="en-US">Interest Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_172c29" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl_172c29" xml:lang="en-US">Total Other Income (Expense)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_439cdf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_439cdf" xml:lang="en-US">Income (loss) before income taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_91f6fa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl_91f6fa" 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_401367" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_401367" xml:lang="en-US">Net Income (loss)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_cfe1a6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareAbstract_lbl_cfe1a6" 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/2021/elts/us-gaap-2021-01-31.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_606da9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasic_lbl_606da9" xml:lang="en-US">Basic</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_65357c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareDiluted_lbl_65357c" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_50f150" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_50f150" 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/2021/elts/us-gaap-2021-01-31.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_735982" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_735982" 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/2021/elts/us-gaap-2021-01-31.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_db93e4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl_db93e4" 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/2021/elts/us-gaap-2021-01-31.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_a8e8c0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl_a8e8c0" xml:lang="en-US">Statement Equity Components [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_5a51f6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockMember_lbl_5a51f6" xml:lang="en-US">Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_a848a2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SeriesAPreferredStocksMember_lbl_a848a2" xml:lang="en-US">Series A Preferred 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_8662fb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl_8662fb" xml:lang="en-US">Additional Paid-In Capital</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_e117fe" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsMember_lbl_e117fe" 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_be2cd8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_SharesIssued_lbl_be2cd8" xml:lang="en-US">Balance, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_866f5c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_StockholdersEquity_lbl_866f5c" xml:lang="en-US">Balance, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_c1bae4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquityCompensation_lbl_c1bae4" xml:lang="en-US">Equity Compensation</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_287743" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockIssuedForServicesProvidedShares_lbl_287743" xml:lang="en-US">Common Stock Issued for Services Provided, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_baa920" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockIssuedForServicesProvidedAmount_lbl_baa920" xml:lang="en-US">Common Stock Issued for Services Provided, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ConversionOfNotesPayableIntoCommonStockShares" xlink:label="tomz_ConversionOfNotesPayableIntoCommonStockShares" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ConversionOfNotesPayableIntoCommonStockShares" xlink:to="tomz_ConversionOfNotesPayableIntoCommonStockShares_lbl_cf4530" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ConversionOfNotesPayableIntoCommonStockShares_lbl_cf4530" xml:lang="en-US">Conversion of Notes Payable into Common Stock, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ConversionOfNotesPayableIntoCommonStockAmount" xlink:label="tomz_ConversionOfNotesPayableIntoCommonStockAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ConversionOfNotesPayableIntoCommonStockAmount" xlink:to="tomz_ConversionOfNotesPayableIntoCommonStockAmount_lbl_0395d1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ConversionOfNotesPayableIntoCommonStockAmount_lbl_0395d1" xml:lang="en-US">Conversion of Notes Payable into Common Stock, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_64574e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsAndOptionsExercisedShares_lbl_64574e" xml:lang="en-US">Warrants and Options Exercised, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_1b966c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsAndOptionsExercisedAmount_lbl_1b966c" xml:lang="en-US">Warrants and Options Exercised, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ReverseStockSplitAdjustmentShares" xlink:label="tomz_ReverseStockSplitAdjustmentShares" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ReverseStockSplitAdjustmentShares" xlink:to="tomz_ReverseStockSplitAdjustmentShares_lbl_520295" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ReverseStockSplitAdjustmentShares_lbl_520295" xml:lang="en-US">Reverse stock split adjustment, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ReverseStockSplitAdjustmentAmount" xlink:label="tomz_ReverseStockSplitAdjustmentAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ReverseStockSplitAdjustmentAmount" xlink:to="tomz_ReverseStockSplitAdjustmentAmount_lbl_cc9da4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ReverseStockSplitAdjustmentAmount_lbl_cc9da4" xml:lang="en-US">Reverse stock split adjustment, 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_3a763f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_3a763f" xml:lang="en-US">Net Income</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_1f8dca" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_1f8dca" 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/2021/elts/us-gaap-2021-01-31.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_43b5f4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues_lbl_43b5f4" 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_SharesIssued" xlink:to="us-gaap_SharesIssued_lbl_1901a6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharesIssued_lbl_1901a6" 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_8c72ff" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_StockholdersEquity_lbl_8c72ff" xml:lang="en-US">Balance, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_e74541" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl_e74541" 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/2021/elts/us-gaap-2021-01-31.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_cd3865" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl_cd3865" 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_cf3796" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_cf3796" xml:lang="en-US">Net Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_3aaf28" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl_3aaf28" 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_8956c9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OtherDepreciationAndAmortization_lbl_8956c9" xml:lang="en-US">Depreciation and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_52ec45" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl_52ec45" 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/2021/elts/us-gaap-2021-01-31.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_d6675e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl_d6675e" xml:lang="en-US">Amortization of Software Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_0f18a4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquityCompensationExpense_lbl_0f18a4" xml:lang="en-US">Equity Compensation Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_a7136d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims_lbl_a7136d" 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/2021/elts/us-gaap-2021-01-31.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_991c42" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease_lbl_991c42" xml:lang="en-US">Reserve for Bad Debt</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_8159a0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryLIFOReservePeriodCharge_lbl_8159a0" 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_bfec5b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl_bfec5b" xml:lang="en-US">Gain Upon Debt Extinguishment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_e47e71" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract_lbl_e47e71" xml:lang="en-US">Changes in Operating Assets and Liabilities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAbstract" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayableAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayableAbstract_lbl_084430" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayableAbstract_lbl_084430" xml:lang="en-US">Decrease (Increase) in:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_fa8cb5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl_fa8cb5" xml:lang="en-US">Accounts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_cfeb3b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl_cfeb3b" 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_f3e417" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl_f3e417" xml:lang="en-US">Prepaid Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_7fd1c7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInDeposits_lbl_7fd1c7" 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_e37208" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInOtherReceivables_lbl_e37208" xml:lang="en-US">Other Receivables</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_1b67de" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl_1b67de" xml:lang="en-US">Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedTaxesPayableAbstract" xlink:label="us-gaap_IncreaseDecreaseInAccruedTaxesPayableAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedTaxesPayableAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedTaxesPayableAbstract_lbl_82e406" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccruedTaxesPayableAbstract_lbl_82e406" 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_a02958" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl_a02958" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_ece814" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl_ece814" xml:lang="en-US">Accrued Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DebtInstrumentIncreasesAccruedInterest" xlink:label="tomz_DebtInstrumentIncreasesAccruedInterest" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DebtInstrumentIncreasesAccruedInterest" xlink:to="tomz_DebtInstrumentIncreasesAccruedInterest_lbl_956fb7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DebtInstrumentIncreasesAccruedInterest_lbl_956fb7" xml:lang="en-US">Accrued Interest</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_31d082" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInCustomerDeposits_lbl_31d082" xml:lang="en-US">Customer Deposits</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_25" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInCustomerDeposits_lbl_25" xml:lang="en-US">[Increase (Decrease) in Customer Deposits]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_85f563" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IncreaseDecreaseInLeaseLiabilities_lbl_85f563" 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_774b66" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_774b66" 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/2021/elts/us-gaap-2021-01-31.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_27" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_27" 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/2021/elts/us-gaap-2021-01-31.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_b6a5b1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl_b6a5b1" xml:lang="en-US">Cash Flow From Investing Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_a48844" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CapitalizedPatentAndTrademarkCosts_lbl_a48844" xml:lang="en-US">Capitalized Patent and Trademark Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_a68e39" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PurchaseOfPropertyAndEquipment_lbl_a68e39" 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_40703f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_40703f" 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/2021/elts/us-gaap-2021-01-31.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_31" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_31" 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/2021/elts/us-gaap-2021-01-31.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_e63f18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl_e63f18" xml:lang="en-US">Cash Flow From Financing Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_dce810" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromIssuanceOfWarrants_lbl_dce810" 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/2021/elts/us-gaap-2021-01-31.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_5ba832" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl_5ba832" xml:lang="en-US">Proceeds from Exercise of Warrants and Options</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromOtherDebt" xlink:label="us-gaap_ProceedsFromOtherDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromOtherDebt" xlink:to="us-gaap_ProceedsFromOtherDebt_lbl_55e356" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromOtherDebt_lbl_55e356" xml:lang="en-US">Proceeds from Loan Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RepaymentOfPrincipalBalanceOnConvertibleNote" xlink:label="tomz_RepaymentOfPrincipalBalanceOnConvertibleNote" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RepaymentOfPrincipalBalanceOnConvertibleNote" xlink:to="tomz_RepaymentOfPrincipalBalanceOnConvertibleNote_lbl_9b00b4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RepaymentOfPrincipalBalanceOnConvertibleNote_lbl_9b00b4" xml:lang="en-US">Repayment of Principal Balance on Convertible Note</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_c11e6a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_c11e6a" xml:lang="en-US">Net Cash From Financing Activities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_37" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_37" 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_74bf91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_74bf91" xml:lang="en-US">Increase In Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_38" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_38" 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_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl_b99f98" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl_b99f98" xml:lang="en-US">Cash and Cash Equivalents - Beginning</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl_39" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl_39" xml:lang="en-US">[Cash and Cash Equivalents, at Carrying Value]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl_3b79ec" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl_3b79ec" xml:lang="en-US">Cash and Cash Equivalents - Ending</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_8ea6b9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl_8ea6b9" xml:lang="en-US">Supplemental Cash Flow Information:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet_lbl_aa22eb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestPaidNet_lbl_aa22eb" xml:lang="en-US">Cash Paid For Interest</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_735f7e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl_735f7e" xml:lang="en-US">Cash Paid for Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_94dbea" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract_lbl_94dbea" xml:lang="en-US">Non-Cash Investing and Financing Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_AccruedEquityCompensation" xlink:label="tomz_AccruedEquityCompensation" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AccruedEquityCompensation" xlink:to="tomz_AccruedEquityCompensation_lbl_98ff92" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AccruedEquityCompensation_lbl_98ff92" xml:lang="en-US">Accrued Equity Compensation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities" xlink:label="us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities" xlink:to="us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities_lbl_125773" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities_lbl_125773" xml:lang="en-US">Conversion of Note Payable into Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_EquipmentNetTransferredToInventory" xlink:label="tomz_EquipmentNetTransferredToInventory" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EquipmentNetTransferredToInventory" xlink:to="tomz_EquipmentNetTransferredToInventory_lbl_f7866c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquipmentNetTransferredToInventory_lbl_f7866c" xml:lang="en-US">Equipment, net Transferred to Inventory</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_991bcf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets_lbl_991bcf" 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/2021/elts/us-gaap-2021-01-31.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_1d3f8e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl_1d3f8e" xml:lang="en-US">DESCRIPTION OF BUSINESS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_edbfb4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NatureOfOperations_lbl_edbfb4" xml:lang="en-US">1. DESCRIPTION OF BUSINESS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_9591ab" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl_9591ab" xml:lang="en-US">SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_bf980a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_bf980a" xml:lang="en-US">2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_6efd5a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryDisclosureAbstract_lbl_6efd5a" xml:lang="en-US">INVENTORIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_98ee91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl_98ee91" xml:lang="en-US">3. INVENTORIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_ef3b62" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl_ef3b62" xml:lang="en-US">VENDOR DEPOSITS</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_8926e9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_VendorDepositsTextBlock_lbl_8926e9" xml:lang="en-US">4. VENDOR DEPOSITS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_0b2a5f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract_lbl_0b2a5f" xml:lang="en-US">PROPERTY AND EQUIPMENT</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_9b74ae" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl_9b74ae" xml:lang="en-US">5. PROPERTY AND EQUIPMENT</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_056ecd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl_056ecd" xml:lang="en-US">INTANGIBLE ASSETS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_9358f7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl_9358f7" xml:lang="en-US">6. INTANGIBLE ASSETS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_397cc0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeasesAbstract_lbl_397cc0" xml:lang="en-US">LEASES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_3c6d68" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_3c6d68" xml:lang="en-US">7. LEASES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_1b335c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedComputerSoftwareNetAbstract_lbl_1b335c" xml:lang="en-US">CAPITALIZED SOFTWARE DEVELOPMENT COSTS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_cbc427" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock_lbl_cbc427" xml:lang="en-US">8. CAPITALIZED SOFTWARE DEVELOPMENT COSTS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_af5422" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RisksAndUncertaintiesAbstract_lbl_af5422" xml:lang="en-US">CLOUD COMPUTING SERVICE CONTRACT</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_77d19f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CloudComputingServiceContractDisclosureTextBlock_lbl_77d19f" xml:lang="en-US">9. CLOUD COMPUTING SERVICE CONTRACT</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_02ddde" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl_02ddde" xml:lang="en-US">10. SHAREHOLDERS' EQUITY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_2f443c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl_2f443c" xml:lang="en-US">COMMITMENTS AND CONTINGENCIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d54c28" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl_d54c28" xml:lang="en-US">11. COMMITMENTS AND CONTINGENCIES</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_48eb69" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ContractsAndAgreementsTextBlock_lbl_48eb69" xml:lang="en-US">12. CONTRACTS AND AGREEMENTS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d28db1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract_lbl_d28db1" 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/2021/elts/us-gaap-2021-01-31.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_bd18e9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_lbl_bd18e9" xml:lang="en-US">13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_1faca2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtDisclosureAbstract_lbl_1faca2" xml:lang="en-US">ACCRUED WARRANTY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_1996a9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GuaranteesTextBlock_lbl_1996a9" xml:lang="en-US">14. ACCRUED WARRANTY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LoansPayableAbstract" xlink:label="us-gaap_LoansPayableAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LoansPayableAbstract" xlink:to="us-gaap_LoansPayableAbstract_lbl_95a7f3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LoansPayableAbstract_lbl_95a7f3" xml:lang="en-US">LOAN PAYABLE</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_LoansPayableDisclosureTextBlock" xlink:label="tomz_LoansPayableDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_LoansPayableDisclosureTextBlock" xlink:to="tomz_LoansPayableDisclosureTextBlock_lbl_c40941" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_LoansPayableDisclosureTextBlock_lbl_c40941" xml:lang="en-US">15. LOAN PAYABLE</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_e1a60a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_lbl_e1a60a" xml:lang="en-US">INCOME TAXES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_683669" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl_683669" xml:lang="en-US">16. INCOME TAXES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_92a2be" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskDisclosureTextBlock_lbl_92a2be" xml:lang="en-US">17. CUSTOMER CONCENTRATION</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_3455d2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsAbstract_lbl_3455d2" xml:lang="en-US">SUBSEQUENT EVENTS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_f14444" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl_f14444" xml:lang="en-US">18. SUBSEQUENT EVENTS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_622dc8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl_622dc8" xml:lang="en-US">Principles of Consolidation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_057d10" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl_057d10" xml:lang="en-US">Reclassification of Accounts</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_626f9f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UseOfEstimates_lbl_626f9f" xml:lang="en-US">Use of Estimates</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_4cc4db" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementPolicyPolicyTextBlock_lbl_4cc4db" 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_69b48e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_69b48e" xml:lang="en-US">Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_2c571d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ReceivablesPolicyTextBlock_lbl_2c571d" xml:lang="en-US">Accounts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_ea5b35" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl_ea5b35" xml:lang="en-US">Inventories</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_83b632" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl_83b632" xml:lang="en-US">Property and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_dceb15" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl_dceb15" xml:lang="en-US">Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c447ea" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_lbl_c447ea" 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_9a15c2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_AccountsPayablePolicyTextBlock_lbl_9a15c2" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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/2021/elts/us-gaap-2021-01-31.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_11a645" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtendedProductWarrantyPolicy_lbl_11a645" xml:lang="en-US">Accrued Warranties</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_ebd4c7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl_ebd4c7" xml:lang="en-US">Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_51fb4c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_lbl_51fb4c" xml:lang="en-US">Net Income (Loss) Per Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_218f49" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock_lbl_218f49" 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_ec0d2c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_ec0d2c" xml:lang="en-US">Equity Compensation Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_698798" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskCreditRisk_lbl_698798" xml:lang="en-US">Concentrations of Credit Risk</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_297431" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets_lbl_297431" 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/2021/elts/us-gaap-2021-01-31.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_5ef953" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdvertisingCostsPolicyTextBlock_lbl_5ef953" xml:lang="en-US">Advertising and Promotional Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_807264" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl_807264" xml:lang="en-US">Research and Development Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_7a71a1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessCombinationsPolicy_lbl_7a71a1" xml:lang="en-US">Business Segments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_42fbfc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl_42fbfc" 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_480aa9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock_lbl_480aa9" xml:lang="en-US">Net Income (Loss) Per Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_eeb10f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl_eeb10f" 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_8a1f6b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl_8a1f6b" xml:lang="en-US">Inventories</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_812de0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl_812de0" xml:lang="en-US">Property and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_f5716b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl_f5716b" xml:lang="en-US">Definite Life Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_2ed4d3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_lbl_2ed4d3" xml:lang="en-US">Indefinite Life Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_176d19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl_176d19" xml:lang="en-US">Approximate Future Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_792d4a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseCostTableTextBlock_lbl_792d4a" xml:lang="en-US">Lease Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_44b594" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OperatingLeaseLiabilityTableTextBlock_lbl_44b594" xml:lang="en-US">Operating Lease</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_89e564" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_LeaseOtherInformationTableTextBlock_lbl_89e564" xml:lang="en-US">Other Information Related to Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_131814" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl_131814" 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/2021/elts/us-gaap-2021-01-31.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_ce9230" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_lbl_ce9230" 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_a7eece" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock_lbl_a7eece" xml:lang="en-US">Capitalized Software Development Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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/2021/elts/us-gaap-2021-01-31.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_8312bd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock_lbl_8312bd" xml:lang="en-US">Stock Options Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c9fa96" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl_c9fa96" 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/2021/elts/us-gaap-2021-01-31.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_f60e97" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_lbl_f60e97" xml:lang="en-US">Stock Warrants Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_aff15b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsOutstandingAndExercisableByPriceRange_lbl_aff15b" xml:lang="en-US">Warrants Outstanding and Exercisable by Price Range</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:label="us-gaap_RestructuringAndRelatedActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:to="us-gaap_RestructuringAndRelatedActivitiesAbstract_lbl_f6fd5d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RestructuringAndRelatedActivitiesAbstract_lbl_f6fd5d" xml:lang="en-US">CONTRACTS AND AGREEMENTS (Tables)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_1a2846" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ApproximateMinimumContractPaymentsTableTextBlock_lbl_1a2846" xml:lang="en-US">Approximate Minimum Contract Payments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_5e9a37" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_lbl_5e9a37" 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/2021/elts/us-gaap-2021-01-31.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_ca24fe" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_lbl_ca24fe" xml:lang="en-US">Warranty Reserve Activity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_052de8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl_052de8" xml:lang="en-US">Income Tax Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_64cf99" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_lbl_64cf99" 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/2021/elts/us-gaap-2021-01-31.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_d15f4f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl_d15f4f" xml:lang="en-US">Effective Income Tax Rate Reconciliation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_78820d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl_78820d" xml:lang="en-US">Deferred Income Tax Assets (Liabilities)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_InterestOnConvertibleDebt" xlink:label="tomz_InterestOnConvertibleDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_InterestOnConvertibleDebt" xlink:to="tomz_InterestOnConvertibleDebt_lbl_117414" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_InterestOnConvertibleDebt_lbl_117414" xml:lang="en-US">Interest on convertible debt</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_ac53bf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_NetLossAttributableToCommonShareholders_lbl_ac53bf" 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/2021/elts/us-gaap-2021-01-31.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_8f69cc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl_8f69cc" 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_9bacad" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_9bacad" 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_cb2512" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_cb2512" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_caa7c8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract_lbl_caa7c8" 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_a9ca7e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_Basic_lbl_a9ca7e" xml:lang="en-US">Basic</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_Basic_lbl_9" 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_c23487" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_Diluted_lbl_c23487" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_10" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_Diluted_lbl_10" xml:lang="en-US">[Diluted]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_fb8bc1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl_fb8bc1" xml:lang="en-US">Income Statement Location Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DilutedNetIncomeorLossMember" xlink:label="tomz_DilutedNetIncomeorLossMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DilutedNetIncomeorLossMember" xlink:to="tomz_DilutedNetIncomeorLossMember_lbl_270200" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DilutedNetIncomeorLossMember_lbl_270200" xml:lang="en-US">Diluted Net Income or Loss [Member]</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_14515e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_14515e" xml:lang="en-US">Basic Weighted-Average Shares</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" xlink:to="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants_lbl_c55dad" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants_lbl_c55dad" xml:lang="en-US">Warrants</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" xlink:label="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" xlink:to="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants_lbl_4" xml:lang="en-US">[Incremental Common Shares Attributable to Dilutive Effect of Call Options and Warrants]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities" xlink:label="us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities" xlink:to="us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities_lbl_85f36b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities_lbl_85f36b" xml:lang="en-US">Convertible Debt</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl_ad6501" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl_ad6501" xml:lang="en-US">Options</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements_lbl_10a3f4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements_lbl_10a3f4" xml:lang="en-US">Preferred Stock</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_774646" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_774646" 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_2cb789" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EarningsPerShareBasic_lbl_2cb789" 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_e49281" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_EarningsPerShareDiluted_lbl_e49281" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_de5846" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementBusinessSegmentsAxis_lbl_de5846" xml:lang="en-US">Segments [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityAxis_lbl_b3c2b3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityAxis_lbl_b3c2b3" xml:lang="en-US">Income Tax Authority [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_ea5946" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SteraMistProductMember_lbl_ea5946" xml:lang="en-US">SteraMist Product</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_77f84b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ServiceAndTrainingMember_lbl_77f84b" xml:lang="en-US">Service and Training</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DomesticCountryMember" xlink:to="us-gaap_DomesticCountryMember_lbl_8eb920" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DomesticCountryMember_lbl_8eb920" xml:lang="en-US">United States</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_6542e2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_InternationalMember_lbl_6542e2" xml:lang="en-US">International</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ProductAndServiceRevenueMember" xlink:label="tomz_ProductAndServiceRevenueMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ProductAndServiceRevenueMember" xlink:to="tomz_ProductAndServiceRevenueMember_lbl_47990c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ProductAndServiceRevenueMember_lbl_47990c" xml:lang="en-US">Product And Service Revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RevenueByGeographicRegionMember" xlink:label="tomz_RevenueByGeographicRegionMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RevenueByGeographicRegionMember" xlink:to="tomz_RevenueByGeographicRegionMember_lbl_f5dbbe" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RevenueByGeographicRegionMember_lbl_f5dbbe" xml:lang="en-US">Revenue By Geographic Region</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_343773" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_Revenues_lbl_343773" xml:lang="en-US">Net Revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_d9cf58" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ChangesInRevenue_lbl_d9cf58" xml:lang="en-US">Changes in revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_09a55b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MajorCustomersAxis_lbl_09a55b" xml:lang="en-US">Major Customers Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_dfbfa2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtinguishmentOfDebtAxis_lbl_dfbfa2" xml:lang="en-US">Extinguishment Of Debt Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_709974" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfWarrantOrRightAxis_lbl_709974" 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/2021/elts/us-gaap-2021-01-31.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_9b9571" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameAxis_lbl_9b9571" xml:lang="en-US">Plan Name Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_b63761" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_lbl_b63761" xml:lang="en-US">Related Party Transactions By Related Party Axis</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SeriesAPreferredStockMember" xlink:to="us-gaap_SeriesAPreferredStockMember_lbl_a72e1d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SeriesAPreferredStockMember_lbl_a72e1d" xml:lang="en-US">Cumulative Convertible Series A Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_d9ba9b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TwoVendorsMember_lbl_d9ba9b" 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_851e49" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsPayableMember_lbl_851e49" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_124" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableMember_lbl_124" xml:lang="en-US">Accounts Payable [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_090e15" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfSalesMember_lbl_090e15" xml:lang="en-US">Cost of Sales [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsMember" xlink:to="tomz_WarrantsMember_lbl_0905d1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_WarrantsMember_lbl_0905d1" xml:lang="en-US">Warrants</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_126" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsMember_lbl_126" xml:lang="en-US">[Warrants]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_1af676" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockOptionsMember_lbl_1af676" xml:lang="en-US">Stock Options</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_816d11" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquityIncentivePlanOneMember_lbl_816d11" xml:lang="en-US">2016 Equity Incentive Plan</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_3adc6f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_DirectorMember_lbl_3adc6f" xml:lang="en-US">Director [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_bcf115" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl_bcf115" xml:lang="en-US">Bad Debt Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_f0ded6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_f0ded6" 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_f021e2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InventoryValuationReserves_lbl_f021e2" xml:lang="en-US">Inventory Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:to="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl_4f00e3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl_4f00e3" xml:lang="en-US">Amortization of Capitalized Software Development Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_223042" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_lbl_223042" xml:lang="en-US">Warranty Reserve</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdvertisingExpense" xlink:to="us-gaap_AdvertisingExpense_lbl_d7be0a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AdvertisingExpense_lbl_d7be0a" xml:lang="en-US">Advertising and Promotional Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdvertisingExpense_lbl_7" xml:lang="en-US">[Advertising Expense]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ResearchAndDevelopmentsExpense" xlink:to="tomz_ResearchAndDevelopmentsExpense_lbl_dd6e22" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_ResearchAndDevelopmentsExpense_lbl_dd6e22" xml:lang="en-US">Research and Development Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ResearchAndDevelopmentsExpense_lbl_8" xml:lang="en-US">[Research and Development Expenses]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d5a5a3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FederalDepositInsuranceCorporationPremiumExpense_lbl_d5a5a3" xml:lang="en-US">Cash balances at financial institutions</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_25ae6c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockIssuableUponConversionOfOutstandingShares_lbl_25ae6c" xml:lang="en-US">Common stock issuable upon conversion of outstanding shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_f55b18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl_f55b18" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_37fc07" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl_37fc07" 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_0b28fa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl_0b28fa" 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_f76424" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl_f76424" xml:lang="en-US">Common stock, shares authorized</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_7ed122" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockSharesIssuedVested_lbl_7ed122" xml:lang="en-US">Common stock, shares issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_7c7fa6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryFinishedGoods_lbl_7c7fa6" xml:lang="en-US">Finished Goods</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_0377cd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryRawMaterials_lbl_0377cd" xml:lang="en-US">Raw Materials</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_6dcce7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InventoryNet_lbl_6dcce7" xml:lang="en-US">Inventory</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DepositsAbstract" xlink:label="us-gaap_DepositsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepositsAbstract" xlink:to="us-gaap_DepositsAbstract_lbl_20dcda" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepositsAbstract_lbl_20dcda" xml:lang="en-US">VENDOR DEPOSITS (Details Narrative)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepositsAssetsCurrent" xlink:to="us-gaap_DepositsAssetsCurrent_lbl_85ad52" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DepositsAssetsCurrent_lbl_85ad52" xml:lang="en-US">Vendor Deposits</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_b6568d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FurnitureAndFixturesGross_lbl_b6568d" xml:lang="en-US">Furniture and Fixtures</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_1afce1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_Equipments_lbl_1afce1" xml:lang="en-US">Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_65ec1c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles_lbl_65ec1c" xml:lang="en-US">Vehicles</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_1cdb90" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ComputerSoftware_lbl_1cdb90" xml:lang="en-US">Computer and Software</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_258337" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseholdImprovementsGross_lbl_258337" xml:lang="en-US">Leasehold Improvements</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d77e91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConstructionInProgressGross_lbl_d77e91" xml:lang="en-US">Tenant Improvement Allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_660f83" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross_lbl_660f83" 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/2021/elts/us-gaap-2021-01-31.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_851eae" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl_851eae" xml:lang="en-US">Property and Equipment, Gross</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_2d43a4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl_2d43a4" 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_e59bf2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl_e59bf2" xml:lang="en-US">Property and Equipment, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_688286" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Depreciation_lbl_688286" xml:lang="en-US">Depreciation</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_b4a1bb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AmortizationOfTenantImprovementAllowance_lbl_b4a1bb" xml:lang="en-US">Amortization of Tenant Improvement Allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d46b70" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl_d46b70" xml:lang="en-US">Intellectual Property and Patents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_7bf596" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl_7bf596" xml:lang="en-US">Less: Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_84ce98" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IntangibleAssetsNet_lbl_84ce98" xml:lang="en-US">Intangible Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_1843ce" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IndefiniteLivedTrademarks_lbl_1843ce" 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_8a55b0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl_8a55b0" xml:lang="en-US">Total Intangible Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_8be6c5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl_8be6c5" xml:lang="en-US">Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_33b5b4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl_33b5b4" xml:lang="en-US">December 31, 2022</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_e424e9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl_e424e9" xml:lang="en-US">December 31, 2023</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_40f9f0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl_40f9f0" xml:lang="en-US">December 31, 2024</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c20f39" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl_c20f39" xml:lang="en-US">December 31, 2025</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_df2a28" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl_df2a28" xml:lang="en-US">December 31, 2026</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_73d7db" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl_73d7db" 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_a4cd42" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl_a4cd42" xml:lang="en-US">Intangible Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_aa00ae" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl_aa00ae" xml:lang="en-US">Amortization Expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl_82c493" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AssetsAbstract_lbl_82c493" 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_60639c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl_60639c" 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/2021/elts/us-gaap-2021-01-31.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_883f4d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAbstract_lbl_883f4d" 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_fbe6a1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_fbe6a1" 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_61bb91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_61bb91" xml:lang="en-US">Long-Term Operating Lease, Net of Current Portion</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_8924b4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiability_lbl_8924b4" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_99d0f4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseExpense_lbl_99d0f4" xml:lang="en-US">Operating Lease Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_c9deec" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm_lbl_c9deec" 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/2021/elts/us-gaap-2021-01-31.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_7f0ad7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseDiscountRate_lbl_7f0ad7" xml:lang="en-US">Discount Rate: Operating Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_014524" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm_lbl_014524" 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_a6672a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl_a6672a" xml:lang="en-US">December 31, 2022</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_820cd3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_820cd3" xml:lang="en-US">December 31, 2023</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_2db13e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_2db13e" xml:lang="en-US">December 31, 2024</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_fc5ef2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_fc5ef2" xml:lang="en-US">December 31, 2025</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_297fe9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_297fe9" xml:lang="en-US">December 31, 2026</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_20061b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl_20061b" xml:lang="en-US">Thereafter</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_b59cbd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl_b59cbd" xml:lang="en-US">Total minimum lease payments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_650118" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl_650118" xml:lang="en-US">Less: interest</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_70089d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiability_lbl_70089d" 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_fd83d1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_fd83d1" 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_0383bf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_0383bf" xml:lang="en-US">Long-term portion of lease obligations</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_9c801e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TermLease_lbl_9c801e" xml:lang="en-US">Term lease</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_712daf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AreaOfLand_lbl_712daf" xml:lang="en-US">Area of lease facility</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_7cb2ed" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasesRentExpenseNet_lbl_7cb2ed" xml:lang="en-US">Annual rent lease</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_4fdf0e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_MaximumIncreasesRentPercentage_lbl_4fdf0e" xml:lang="en-US">Increases rent percentage escalation clause</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c4f111" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WorkersCompensationDiscountPercent_lbl_c4f111" xml:lang="en-US">Discount rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_f38b2f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsForProceedsFromTenantAllowance_lbl_f38b2f" xml:lang="en-US">Landlord tenant improvement allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_4450e8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedComputerSoftwareGross_lbl_4450e8" 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_76f649" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization_lbl_76f649" xml:lang="en-US">Less: Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d144cb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedComputerSoftwareNet_lbl_d144cb" xml:lang="en-US">Capitalized Software Development Costs, Net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:to="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl_799cb9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl_799cb9" xml:lang="en-US">Amortization of Capitalized Software Development Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_CompensationAndRetirementDisclosureAbstract_lbl_e18472" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract_lbl_e18472" xml:lang="en-US">CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_1406e0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ProceedsFromServiceContractOfReceivables_lbl_1406e0" xml:lang="en-US">Annual payments on contract received</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_56c260" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AnnualPaymentsOnContractTerm_lbl_56c260" xml:lang="en-US">Annual payments on contract term</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_ac34c1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseAndOtherAssets_lbl_ac34c1" xml:lang="en-US">Prepaid expenses and other assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_4ee390" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfGoodsAndServicesSoldAmortization_lbl_4ee390" xml:lang="en-US">Amortization expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_829b83" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockWarrantMember_lbl_829b83" xml:lang="en-US">Stock Warrant [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_05aa6f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OutstandingBeginningOfPeriod_lbl_05aa6f" xml:lang="en-US">Outstanding, beginning of period</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_a0c358" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl_a0c358" 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_56ae63" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_lbl_56ae63" xml:lang="en-US">Exercised</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_0f2a80" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_lbl_0f2a80" xml:lang="en-US">Expired</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.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_a8e3a5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OutstandingEndOfPeriod_lbl_a8e3a5" xml:lang="en-US">Outstanding, end of period</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_442733" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceAbstract_lbl_442733" xml:lang="en-US">Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_a4015b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceOutstandingBeginningBalance_lbl_a4015b" xml:lang="en-US">Weighted average exercise price outstanding, Beginning balance</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_f8293e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceGranted_lbl_f8293e" xml:lang="en-US">Weighted average exercise price, Granted</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_bcce13" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceExercised_lbl_bcce13" xml:lang="en-US">Weighted average exercise price, Exercised</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_411c83" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceExpired_lbl_411c83" xml:lang="en-US">Weighted average exercise price, Expired</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_f82ff9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WeightedAverageExercisePriceOutstandingEndingBalance_lbl_f82ff9" 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/2021/elts/us-gaap-2021-01-31.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_79558b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OptionIndexedToIssuersEquityEquityAxis_lbl_79558b" xml:lang="en-US">Option Indexed to Issuer's Equity [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_17b246" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeFourMember_lbl_17b246" xml:lang="en-US">$1.93</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_f49974" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeOneMember_lbl_f49974" xml:lang="en-US">$0.80</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_f7c878" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeTwoMember_lbl_f7c878" xml:lang="en-US">$0.88</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_f9ec67" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeThreeMember_lbl_f9ec67" xml:lang="en-US">$0.96</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_403960" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeFiveMember_lbl_403960" xml:lang="en-US">$2.16</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RangeSixMember" xlink:label="tomz_RangeSixMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeSixMember" xlink:to="tomz_RangeSixMember_lbl_d77556" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeSixMember_lbl_d77556" xml:lang="en-US">$4.40</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_b66379" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeSevenMember_lbl_b66379" xml:lang="en-US">$7.06</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_ef5701" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_ef5701" xml:lang="en-US">Outstanding, Beginning Balance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d10039" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_d10039" xml:lang="en-US">Average Weighted Remaining Contractual Life in Years, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_840daf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_840daf" xml:lang="en-US">Number of Exercisable Options</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d6e21b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl_d6e21b" 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/2021/elts/us-gaap-2021-01-31.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_a52000" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_lbl_a52000" 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_b3e22b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_b3e22b" 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_37aa07" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl_37aa07" 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_12e50f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_12e50f" 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_60a482" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_lbl_60a482" xml:lang="en-US">Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_fba617" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_fba617" 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/2021/elts/us-gaap-2021-01-31.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_5060c2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl_5060c2" xml:lang="en-US">Weighted average exercise price, Granted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_aa8c1e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl_aa8c1e" xml:lang="en-US">Weighted average exercise price, Exercised</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_eb1e60" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl_eb1e60" xml:lang="en-US">Weighted average exercise price, Expired</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_296fe4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_296fe4" 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/2021/elts/us-gaap-2021-01-31.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_48aac4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AwardTypeAxis_lbl_48aac4" xml:lang="en-US">Award Type Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_88c9f8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsOneMember_lbl_88c9f8" xml:lang="en-US">$ 0.64</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_aacfc6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsTwoMember_lbl_aacfc6" xml:lang="en-US">$ 0.80</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_de37a6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsThreeMember_lbl_de37a6" xml:lang="en-US">$ 0.96</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_39a4a6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsFourMember_lbl_39a4a6" xml:lang="en-US">$ 1.12</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_63ac0b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsFiveMember_lbl_63ac0b" xml:lang="en-US">$ 1.20</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsSixMember" xlink:label="tomz_WarrantsSixMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsSixMember" xlink:to="tomz_WarrantsSixMember_lbl_1ea974" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsSixMember_lbl_1ea974" xml:lang="en-US">$ 1.36</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_f9fb43" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsSevenMember_lbl_f9fb43" xml:lang="en-US">$ 1.68</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_e71cbb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsEightMember_lbl_e71cbb" xml:lang="en-US">$ 2.18</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsNineMember" xlink:label="tomz_WarrantsNineMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsNineMember" xlink:to="tomz_WarrantsNineMember_lbl_017c55" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsNineMember_lbl_017c55" xml:lang="en-US">$ 2.32</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_c819d7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsTenMember_lbl_c819d7" xml:lang="en-US">$ 4.00</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_75200d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsElevenMember_lbl_75200d" xml:lang="en-US">$ 6.95</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_c968b2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsTwelveMember_lbl_c968b2" xml:lang="en-US">$ 8.40</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_51e159" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_51e159" xml:lang="en-US">Outstanding, Beginning Balance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_2" 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_53776d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_53776d" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_61e0b6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_61e0b6" 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_ccb819" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl_ccb819" xml:lang="en-US">Weighted Average Exercise Price, Exercisable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_733d01" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_TitleOfIndividualAxis_lbl_733d01" xml:lang="en-US">Title Of Individual Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_b69e82" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AwardDateAxis_lbl_b69e82" xml:lang="en-US">Award Date Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_c5dfc7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PrivatePlacementsMember_lbl_c5dfc7" xml:lang="en-US">Private Placement [Members]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_a0d865" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PlacementAgentMember_lbl_a0d865" xml:lang="en-US">Placement Agent [Members]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_MarchTwentyTwentyMember" xlink:label="tomz_MarchTwentyTwentyMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_MarchTwentyTwentyMember" xlink:to="tomz_MarchTwentyTwentyMember_lbl_a5b85f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_MarchTwentyTwentyMember_lbl_a5b85f" xml:lang="en-US">March 2020 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_JulyTwentyTwentyMember" xlink:label="tomz_JulyTwentyTwentyMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_JulyTwentyTwentyMember" xlink:to="tomz_JulyTwentyTwentyMember_lbl_a28d5d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_JulyTwentyTwentyMember_lbl_a28d5d" xml:lang="en-US">July 2020 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OctoberTwoThousandTwentyMember" xlink:label="tomz_OctoberTwoThousandTwentyMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OctoberTwoThousandTwentyMember" xlink:to="tomz_OctoberTwoThousandTwentyMember_lbl_b4fcf8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OctoberTwoThousandTwentyMember_lbl_b4fcf8" xml:lang="en-US">October 2020 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_JuneTwentyTwentyMember" xlink:label="tomz_JuneTwentyTwentyMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_JuneTwentyTwentyMember" xlink:to="tomz_JuneTwentyTwentyMember_lbl_a84043" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_JuneTwentyTwentyMember_lbl_a84043" xml:lang="en-US">June 2020 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_MayTwentyTwentyMember" xlink:label="tomz_MayTwentyTwentyMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_MayTwentyTwentyMember" xlink:to="tomz_MayTwentyTwentyMember_lbl_56add6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_MayTwentyTwentyMember_lbl_56add6" xml:lang="en-US">May 2020 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_e51e24" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_JanuaryTwentyTwentyOneMember_lbl_e51e24" xml:lang="en-US">January 2021 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_97faff" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ChiefOperatingOfficersMember_lbl_97faff" 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_84e103" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_StockOptionsMember_lbl_84e103" xml:lang="en-US">Stock Options</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_AprilTwentyTwentyMember" xlink:label="tomz_AprilTwentyTwentyMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AprilTwentyTwentyMember" xlink:to="tomz_AprilTwentyTwentyMember_lbl_d3be94" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AprilTwentyTwentyMember_lbl_d3be94" xml:lang="en-US">April 2020 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantOneMember" xlink:label="tomz_StockWarrantOneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StockWarrantOneMember" xlink:to="tomz_StockWarrantOneMember_lbl_0ce9a8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockWarrantOneMember_lbl_0ce9a8" xml:lang="en-US">Stock Warrant 1 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantTwoMember" xlink:label="tomz_StockWarrantTwoMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StockWarrantTwoMember" xlink:to="tomz_StockWarrantTwoMember_lbl_bd0a69" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockWarrantTwoMember_lbl_bd0a69" xml:lang="en-US">Stock Warrant 2 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantThreeMember" xlink:label="tomz_StockWarrantThreeMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StockWarrantThreeMember" xlink:to="tomz_StockWarrantThreeMember_lbl_94f9a3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockWarrantThreeMember_lbl_94f9a3" xml:lang="en-US">Stock Warrant 3 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OctoberwentyTwentyMember" xlink:to="tomz_OctoberwentyTwentyMember_lbl_b33414" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_OctoberwentyTwentyMember_lbl_b33414" xml:lang="en-US">October 2020 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OctoberwentyTwentyMember" xlink:label="tomz_OctoberwentyTwentyMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OctoberwentyTwentyMember" xlink:to="tomz_OctoberwentyTwentyMember_lbl_69" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OctoberwentyTwentyMember_lbl_69" xml:lang="en-US">[October 2020 [Member]]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityReverseStockSplit" xlink:label="us-gaap_StockholdersEquityReverseStockSplit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityReverseStockSplit" xlink:to="us-gaap_StockholdersEquityReverseStockSplit_lbl_7a6497" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityReverseStockSplit_lbl_7a6497" xml:lang="en-US">Reverse stock split</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_841363" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockShareSold_lbl_841363" xml:lang="en-US">Common stock share sold</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_790f5f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IssuedWarrantsInConcurrentPrivatePlacement_lbl_790f5f" xml:lang="en-US">Issued warrants in concurrent private placement</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_f12294" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IssuedWarrantsInConcurrentPlacementAgent_lbl_f12294" xml:lang="en-US">Issued warrants in concurrent placement agent</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ExercisePrice" xlink:to="tomz_ExercisePrice_lbl_51a6fa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_ExercisePrice_lbl_51a6fa" xml:lang="en-US">Exercise price</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ExercisePrice" xlink:label="tomz_ExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ExercisePrice" xlink:to="tomz_ExercisePrice_lbl_6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ExercisePrice_lbl_6" xml:lang="en-US">[Exercise price]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_7c3ad5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_GrantFairValueOfPerShare_lbl_7c3ad5" 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_967f77" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ProceedsFromIssuanceOfWarrants_lbl_967f77" xml:lang="en-US">Proceeds from issuance of warrants</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_5a95eb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ExercisePriceOfWarrant_lbl_5a95eb" xml:lang="en-US">Exercise price of warrant</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_dd03e5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantAmendmentDescription_lbl_dd03e5" xml:lang="en-US">Warrant amendment, description</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl_c6eeec" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl_c6eeec" xml:lang="en-US">Common stock shares fully vested, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_abd452" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AggregateCashConsideration_lbl_abd452" xml:lang="en-US">Aggregate cash consideration</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesFullyVestedAmount" xlink:label="tomz_CommonStockSharesFullyVestedAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockSharesFullyVestedAmount" xlink:to="tomz_CommonStockSharesFullyVestedAmount_lbl_de855a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockSharesFullyVestedAmount_lbl_de855a" xml:lang="en-US">Common stock shares fully vested, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_2f3404" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock_lbl_2f3404" 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_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued_lbl_d64970" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockSharesIssued_lbl_d64970" 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_21eda9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl_21eda9" 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_22755f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_22755f" 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/2021/elts/us-gaap-2021-01-31.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_d840e4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WarrantsAndRightsOutstanding_lbl_d840e4" xml:lang="en-US">Warrant issued</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_Preferredstockparorstatedvaluepershare" xlink:to="tomz_Preferredstockparorstatedvaluepershare_lbl_a816b8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_Preferredstockparorstatedvaluepershare_lbl_a816b8" xml:lang="en-US">Cumulative Convertible Preferred Stock; Par Value</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_Preferredstockparorstatedvaluepershare" xlink:label="tomz_Preferredstockparorstatedvaluepershare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_Preferredstockparorstatedvaluepershare" xlink:to="tomz_Preferredstockparorstatedvaluepershare_lbl_20" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_Preferredstockparorstatedvaluepershare_lbl_20" xml:lang="en-US">[Cumulative Convertible Preferred Stock; Par Value]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares" xlink:label="tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares" xlink:to="tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares_lbl_295fa8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares_lbl_295fa8" xml:lang="en-US">Common stock shares issued upon conversion of convertible notes payable, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount" xlink:label="tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount" xlink:to="tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount_lbl_bcb7ba" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount_lbl_bcb7ba" xml:lang="en-US">Common stock shares issued upon conversion of convertible notes payable, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConversionOfStockSharesConverted1" xlink:label="us-gaap_ConversionOfStockSharesConverted1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConversionOfStockSharesConverted1" xlink:to="us-gaap_ConversionOfStockSharesConverted1_lbl_f26ab7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConversionOfStockSharesConverted1_lbl_f26ab7" xml:lang="en-US">Common stock shares issued upon exercise of warrants, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConversionOfStockAmountConverted1" xlink:label="us-gaap_ConversionOfStockAmountConverted1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConversionOfStockAmountConverted1" xlink:to="us-gaap_ConversionOfStockAmountConverted1_lbl_6c639e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConversionOfStockAmountConverted1_lbl_6c639e" xml:lang="en-US">Common stock shares issued upon exercise of warrants, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponExerciseOfOptionShares" xlink:label="tomz_CommonStockSharesIssuedUponExerciseOfOptionShares" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockSharesIssuedUponExerciseOfOptionShares" xlink:to="tomz_CommonStockSharesIssuedUponExerciseOfOptionShares_lbl_9fec30" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockSharesIssuedUponExerciseOfOptionShares_lbl_9fec30" xml:lang="en-US">Common stock shares issued upon exercise of option, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount" xlink:label="tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount" xlink:to="tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount_lbl_8856bc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount_lbl_8856bc" xml:lang="en-US">Common stock shares issued upon exercise of option, amount</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_34b8c7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_34b8c7" 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_a2e642" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommonStockValue_lbl_a2e642" xml:lang="en-US">Common stock value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c7d696" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl_c7d696" xml:lang="en-US">Volatility rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_761363" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl_761363" xml:lang="en-US">Expected dividend yield</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_451ffc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl_451ffc" xml:lang="en-US">Risk free interest rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_ce0fbf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl_ce0fbf" xml:lang="en-US">Aggregate shares purchase of stock option</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_1d5663" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_FairValueOfStockOption_lbl_1d5663" xml:lang="en-US">Fair value of stock option</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d536f7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl_d536f7" xml:lang="en-US">Expected life term</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_f7de8e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_lbl_f7de8e" xml:lang="en-US">Exercise price</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_FairValueOfStockWarrant" xlink:label="tomz_FairValueOfStockWarrant" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_FairValueOfStockWarrant" xlink:to="tomz_FairValueOfStockWarrant_lbl_e593aa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_FairValueOfStockWarrant_lbl_e593aa" xml:lang="en-US">Fair value of stock warrant</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProductLiabilityContingencyAccrualPresentValue" xlink:label="us-gaap_ProductLiabilityContingencyAccrualPresentValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductLiabilityContingencyAccrualPresentValue" xlink:to="us-gaap_ProductLiabilityContingencyAccrualPresentValue_lbl_d01689" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProductLiabilityContingencyAccrualPresentValue_lbl_d01689" xml:lang="en-US">Claims against product liability</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresAbstract_lbl_f97f70" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueDisclosuresAbstract_lbl_f97f70" xml:lang="en-US">CONTRACTS AND AGREEMENTS (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractualObligationDueInNextTwelveMonths" xlink:to="us-gaap_ContractualObligationDueInNextTwelveMonths_lbl_626ad8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ContractualObligationDueInNextTwelveMonths_lbl_626ad8" xml:lang="en-US">December 31, 2022</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractualObligationDueInNextTwelveMonths" xlink:label="us-gaap_ContractualObligationDueInNextTwelveMonths" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractualObligationDueInNextTwelveMonths" xlink:to="us-gaap_ContractualObligationDueInNextTwelveMonths_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractualObligationDueInNextTwelveMonths_lbl_2" xml:lang="en-US">[Contractual Obligation, to be Paid, Year One]</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_28c2f2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ContractualObligationDueInSecondYear_lbl_28c2f2" xml:lang="en-US">December 31, 2023</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractualObligationDueInSecondYear_lbl_3" 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_fcce77" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ContractualObligationDueInThirdYear_lbl_fcce77" xml:lang="en-US">December 31, 2024</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractualObligationDueInThirdYear_lbl_4" 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_903b91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ContractualObligationDueInFourthYear_lbl_903b91" xml:lang="en-US">December 31, 2025</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractualObligationDueInFourthYear_lbl_5" xml:lang="en-US">[Contractual Obligation, to be Paid, Year Four]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c016e6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ContractualObligation_lbl_c016e6" xml:lang="en-US">Total Minimum Payments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_036d7b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_lbl_036d7b" xml:lang="en-US">CONTRACTS AND AGREEMENTS (Details Narrative)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_44d0d6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ExecutiveAgreementsWithElissaJShaneMember_lbl_44d0d6" xml:lang="en-US">Executive Agreements (Elissa J. Shane)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_682942" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_BoardOfMembersMember_lbl_682942" xml:lang="en-US">Board of Members</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_857d17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommitteeChairpersonMember_lbl_857d17" xml:lang="en-US">Committee Chairperson</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_951763" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ExecutiveAgreementsWithHaldenSShaneMember_lbl_951763" xml:lang="en-US">Executive Agreements (Halden S. Shane)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_TwoThousandSixteenEquityPlanMember" xlink:label="tomz_TwoThousandSixteenEquityPlanMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_TwoThousandSixteenEquityPlanMember" xlink:to="tomz_TwoThousandSixteenEquityPlanMember_lbl_4bbb4c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TwoThousandSixteenEquityPlanMember_lbl_4bbb4c" xml:lang="en-US">2016 Equity Plan</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:to="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles_lbl_d68b06" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles_lbl_d68b06" xml:lang="en-US">Vehicle allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_938e4e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TermOfAgreement_lbl_938e4e" xml:lang="en-US">Term of agreement</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_1e677b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SalariesAndWages_lbl_1e677b" 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_6e41a8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ClassOfWarrantOrRightOutstanding_lbl_6e41a8" xml:lang="en-US">Warrants</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_dae42c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight_lbl_dae42c" 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/2021/elts/us-gaap-2021-01-31.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_9cda5a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_lbl_9cda5a" xml:lang="en-US">Options full consideration of the amount entitled</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_3bc113" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentForManagementFee_lbl_3bc113" 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_3b9802" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_3b9802" 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/2021/elts/us-gaap-2021-01-31.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_e1e437" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices_lbl_e1e437" xml:lang="en-US">Issued shares of common stock during period, value</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_IssuanceOfOptionToPurchaseSharesOfCommonStock" xlink:label="tomz_IssuanceOfOptionToPurchaseSharesOfCommonStock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_IssuanceOfOptionToPurchaseSharesOfCommonStock" xlink:to="tomz_IssuanceOfOptionToPurchaseSharesOfCommonStock_lbl_062329" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IssuanceOfOptionToPurchaseSharesOfCommonStock_lbl_062329" xml:lang="en-US">Issuance of option to purchase shares of common stock</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile" xlink:label="tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile" xlink:to="tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile_lbl_811ca3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile_lbl_811ca3" xml:lang="en-US">Reimburse of expenses associated with use of automobile</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesOther" xlink:to="us-gaap_StockIssuedDuringPeriodSharesOther_lbl_48ca02" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesOther_lbl_48ca02" xml:lang="en-US">Issuance of option to purchase shares of common stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesOther" xlink:label="us-gaap_StockIssuedDuringPeriodSharesOther" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesOther" xlink:to="us-gaap_StockIssuedDuringPeriodSharesOther_lbl_13" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesOther_lbl_13" xml:lang="en-US">[Stock Issued During Period, Shares, Other]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SaleOfStockPricePerShare" xlink:label="us-gaap_SaleOfStockPricePerShare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SaleOfStockPricePerShare" xlink:to="us-gaap_SaleOfStockPricePerShare_lbl_bcf061" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SaleOfStockPricePerShare_lbl_bcf061" xml:lang="en-US">Closing price per share</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsCancelled" xlink:label="tomz_WarrantsCancelled" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsCancelled" xlink:to="tomz_WarrantsCancelled_lbl_a254f0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsCancelled_lbl_a254f0" xml:lang="en-US">Warrants cancelled</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_11fe12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent_lbl_11fe12" xml:lang="en-US">Commissions</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_d821ce" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent_lbl_d821ce" xml:lang="en-US">Payroll and related costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_d0078f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DirectorFeesCurrentAndNoncurrent_lbl_d0078f" xml:lang="en-US">Director Fees</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_9610b9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SalesTaxPayable_lbl_9610b9" xml:lang="en-US">Sales Tax Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedIncomeTaxes" xlink:label="us-gaap_AccruedIncomeTaxes" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedIncomeTaxes" xlink:to="us-gaap_AccruedIncomeTaxes_lbl_08dcff" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedIncomeTaxes_lbl_08dcff" xml:lang="en-US">Income Taxes Payable (Note 16)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_554723" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtendedProductWarrantyAccrualCurrent_lbl_554723" xml:lang="en-US">Accrued warranty (Note 14)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_0f2748" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_lbl_0f2748" 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_e49789" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl_e49789" 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_105b61" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl_105b61" xml:lang="en-US">Beginning accrued warranty costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_62eed7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease_lbl_62eed7" xml:lang="en-US">Provision for warranty expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_d58fb9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SettlementOfWarrantyClaims_lbl_d58fb9" 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_a60eb0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl_a60eb0" xml:lang="en-US">Ending accrued warranty costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ProceedsFromLoanFundingPaycheckProtectionProgram" xlink:label="tomz_ProceedsFromLoanFundingPaycheckProtectionProgram" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ProceedsFromLoanFundingPaycheckProtectionProgram" xlink:to="tomz_ProceedsFromLoanFundingPaycheckProtectionProgram_lbl_a6e255" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ProceedsFromLoanFundingPaycheckProtectionProgram_lbl_a6e255" xml:lang="en-US">Loan funding from (Paycheck Protection Program)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_GainsLossOnExtinguishmentOfDebt" xlink:label="tomz_GainsLossOnExtinguishmentOfDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_GainsLossOnExtinguishmentOfDebt" xlink:to="tomz_GainsLossOnExtinguishmentOfDebt_lbl_685066" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_GainsLossOnExtinguishmentOfDebt_lbl_685066" xml:lang="en-US">Gain on extinguishment debt</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl_70ae40" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl_70ae40" xml:lang="en-US">PPP Loan interest rate per annum on outstanding principal</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_UnsecuredLoanPrincipalAmountOfCityNationalBank" xlink:label="tomz_UnsecuredLoanPrincipalAmountOfCityNationalBank" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_UnsecuredLoanPrincipalAmountOfCityNationalBank" xlink:to="tomz_UnsecuredLoanPrincipalAmountOfCityNationalBank_lbl_93dab5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_UnsecuredLoanPrincipalAmountOfCityNationalBank_lbl_93dab5" xml:lang="en-US">Unsecured loan principal amount of City National Bank</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_53c1fc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl_53c1fc" xml:lang="en-US">Current:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_402fe8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_lbl_402fe8" xml:lang="en-US">Federal</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_619a2a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl_619a2a" xml:lang="en-US">State</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_df5334" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit_lbl_df5334" 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_ef8711" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl_ef8711" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_d5d1b5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl_d5d1b5" 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_77b941" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl_77b941" xml:lang="en-US">Federal</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_b8c2f6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl_b8c2f6" xml:lang="en-US">State</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_0228d7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit_lbl_0228d7" xml:lang="en-US">Foreign</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl_c19346" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl_c19346" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_11" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl_11" xml:lang="en-US">[Deferred Income Tax Expense (Benefit)]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_72b045" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ProvisionForIncomeTaxes_lbl_72b045" xml:lang="en-US">Provision for Income Taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_lbl_6de38e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_lbl_6de38e" xml:lang="en-US">United States</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_lbl_2" xml:lang="en-US">[Income (Loss) from Continuing Operations before Income Taxes, Domestic]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_lbl_c9e56b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_lbl_c9e56b" xml:lang="en-US">Foreign</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_lbl_3" xml:lang="en-US">[Income (Loss) from Continuing Operations before Income Taxes, Foreign]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_lbl_c29e33" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_lbl_c29e33" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_lbl_4" 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-20211231.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_336ed8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_IncomeLossBeforeIncomeTax_lbl_336ed8" xml:lang="en-US">Income (Loss) before income tax</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_aea462" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl_aea462" 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/2021/elts/us-gaap-2021-01-31.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_d567f7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_lbl_d567f7" 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/2021/elts/us-gaap-2021-01-31.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_5f79e7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_lbl_5f79e7" xml:lang="en-US">Reconciling items:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_f640b2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl_f640b2" 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/2021/elts/us-gaap-2021-01-31.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_1f60fc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes_lbl_1f60fc" 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/2021/elts/us-gaap-2021-01-31.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_072340" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl_072340" 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_4bd383" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization_lbl_4bd383" xml:lang="en-US">Gain Upon Debt Extinguishment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment_lbl_11c3d3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment_lbl_11c3d3" xml:lang="en-US">Meals and Entertainment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_377377" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxReconciliationOtherReconcilingItems_lbl_377377" 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_a9ad12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl_a9ad12" xml:lang="en-US">Income tax expense (benefit)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_81dadb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAbstract_lbl_81dadb" xml:lang="en-US">Deferred tax assets:</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_96e1fb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_lbl_96e1fb" xml:lang="en-US">Reserve for Bad Debt</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_lbl_3" 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-20211231.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_8fa669" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DeferredTaxAssetsAccruedVacation_lbl_8fa669" 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_88488a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve_lbl_88488a" xml:lang="en-US">Warranty Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve_lbl_5" xml:lang="en-US">[Warranty Reserve]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_1b3c6f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets_lbl_1b3c6f" xml:lang="en-US">Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_b262f9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities_lbl_b262f9" 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/2021/elts/us-gaap-2021-01-31.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_e79b50" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards_lbl_e79b50" 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_21adc8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl_21adc8" xml:lang="en-US">Valuation Allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl_9" xml:lang="en-US">[Deferred Tax Assets, Valuation Allowance]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_7d3808" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsNet_lbl_7d3808" xml:lang="en-US">Deferred Tax Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_c00e1a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract_lbl_c00e1a" 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_5b14de" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets_lbl_5b14de" xml:lang="en-US">Operating Lease Right-of-use Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets_lbl_12" 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_a627a8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl_a627a8" xml:lang="en-US">Property Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_13" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl_13" 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_0c41bb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DeferredTaxLiabilities_lbl_0c41bb" xml:lang="en-US">Deferred Tax Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_14" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxLiabilities_lbl_14" xml:lang="en-US">[Deferred Tax Liabilities, Net]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_39c03e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl_39c03e" 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/2021/elts/us-gaap-2021-01-31.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_078ca8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLossCarryforwards_lbl_078ca8" xml:lang="en-US">Net Operating Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_8066c0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StateNetOperatingLossCarryforwards_lbl_8066c0" xml:lang="en-US">State Net Operating Loss Carryforwards</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_d73e5d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_NetDeferredTaxAssetsIncreasedValuationAllowance_lbl_d73e5d" xml:lang="en-US">Net deferred tax assets increased valuation allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_52c7fe" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_NetDeferredTaxAssetsValuationAllowance_lbl_52c7fe" xml:lang="en-US">Net deferred tax assets valuation allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_9d832d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OneCustomerMember_lbl_9d832d" xml:lang="en-US">One Customer</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ThreeCustomersMember" xlink:label="tomz_ThreeCustomersMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ThreeCustomersMember" xlink:to="tomz_ThreeCustomersMember_lbl_919b33" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ThreeCustomersMember_lbl_919b33" xml:lang="en-US">Three Customers</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_f4b2df" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TwoCustomerMember_lbl_f4b2df" xml:lang="en-US">Two Customer</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl_64cbfb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl_64cbfb" xml:lang="en-US">Concentration Risk Percentage</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_2d264c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventTypeAxis_lbl_2d264c" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_be34b6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventMember_lbl_be34b6" xml:lang="en-US">Subsequent Event</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_5d136f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ChiefExecutiveOfficerMember_lbl_5d136f" xml:lang="en-US">Chief Executive Officer [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_c75525" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ChiefOperatingOfficerMember_lbl_c75525" xml:lang="en-US">Chief Operating Officer [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_8be9a8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ChiefFinancialOfficerMember_lbl_8be9a8" xml:lang="en-US">Chief Financial Officer</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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_935ea5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_BoardOfDirectorsChairmanMember_lbl_935ea5" 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_5606d8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_lbl_5606d8" xml:lang="en-US">Exercise price</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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_358b2d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl_358b2d" xml:lang="en-US">Option to purchase</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_9b44d3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockOptionValued_lbl_9b44d3" xml:lang="en-US">Stock option valued</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_81cb73" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockOptionTerm_lbl_81cb73" xml:lang="en-US">Stock option term</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_96ee4d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_Volatility_lbl_96ee4d" 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_020d9d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_ExpectedDividendYield_lbl_020d9d" xml:lang="en-US">Expected dividend yield</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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_b04125" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_RiskFreeInterestRate_lbl_b04125" xml:lang="en-US">Risk free interest rate</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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-20211231.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_2768a2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_GrantDateFairValuePerShareOfCommonStock_lbl_2768a2" 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/2021/elts/us-gaap-2021-01-31.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_0f981d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConversionOfStockSharesIssued1_lbl_0f981d" xml:lang="en-US">Common stock issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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_551e81" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConversionOfStockAmountIssued1_lbl_551e81" xml:lang="en-US">Common stock issued amount</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_DebtInstrumentIncreasesAccruedInterest" xlink:to="tomz_DebtInstrumentIncreasesAccruedInterest_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_DebtInstrumentIncreasesAccruedInterest_d">Increase for accrued, but unpaid interest on the debt instrument for 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_RepaymentOfPrincipalBalanceOnConvertibleNote" xlink:to="tomz_RepaymentOfPrincipalBalanceOnConvertibleNote_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_RepaymentOfPrincipalBalanceOnConvertibleNote_d">The cash outflow from the repayment of a long-term debt instrument which can be exchanged for a specified amount of another security, typically the entity's common stock, at the option of the issuer or the holder.</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:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_NetLossAttributableToCommonShareholders" xlink:to="tomz_NetLossAttributableToCommonShareholders_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_NetLossAttributableToCommonShareholders_d">Custom Element.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_ResearchAndDevelopmentsExpense" xlink:to="tomz_ResearchAndDevelopmentsExpense_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_ResearchAndDevelopmentsExpense_d">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</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile" xlink:to="tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile_d">Cost associated with reimbursable income. This occurs when a services entity incurs expenses on behalf of the client and passes through the cost of reimbursable expenses to a client.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_GainsLossOnExtinguishmentOfDebt" xlink:to="tomz_GainsLossOnExtinguishmentOfDebt_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_GainsLossOnExtinguishmentOfDebt_d">Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.</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:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>9
<FILENAME>tomz-20211231_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/29/2022-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2022 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-20211231.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tomz-20211231.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:href="tomz-20211231.xsd#CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfOperations" xlink:href="tomz-20211231.xsd#CondensedConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:href="tomz-20211231.xsd#CondensedConsolidatedStatementsOfStockholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:href="tomz-20211231.xsd#CondensedConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/DescriptionOfBusiness" xlink:href="tomz-20211231.xsd#DescriptionOfBusiness" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/INVENTORIES" xlink:href="tomz-20211231.xsd#INVENTORIES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDeposits" xlink:href="tomz-20211231.xsd#VendorDeposits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipment" xlink:href="tomz-20211231.xsd#PropertyAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssets" xlink:href="tomz-20211231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LEASES" xlink:href="tomz-20211231.xsd#LEASES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCosts" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContract" xlink:href="tomz-20211231.xsd#CloudComputingServiceContract" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquity" xlink:href="tomz-20211231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingencies" xlink:href="tomz-20211231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreements" xlink:href="tomz-20211231.xsd#ContractsAndAgreements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:href="tomz-20211231.xsd#AccruedExpensesAndOtherCurrentLiabilities" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarranty" xlink:href="tomz-20211231.xsd#AccruedWarranty" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LoanPayable" xlink:href="tomz-20211231.xsd#LoanPayable" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxes" xlink:href="tomz-20211231.xsd#IncomeTaxes" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentration" xlink:href="tomz-20211231.xsd#CustomerConcentration" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEvents" xlink:href="tomz-20211231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesTables" xlink:href="tomz-20211231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentTables" xlink:href="tomz-20211231.xsd#PropertyAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsTables" xlink:href="tomz-20211231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesTables" xlink:href="tomz-20211231.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCostsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/HareholdersEquityTables" xlink:href="tomz-20211231.xsd#HareholdersEquityTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsTables" xlink:href="tomz-20211231.xsd#ContractsAndAgreementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:href="tomz-20211231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyTables" xlink:href="tomz-20211231.xsd#AccruedWarrantyTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesTables" xlink:href="tomz-20211231.xsd#IncomeTaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesDetails" xlink:href="tomz-20211231.xsd#InventoriesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:href="tomz-20211231.xsd#VendorDepositsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:href="tomz-20211231.xsd#PropertyAndEquipmentDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:href="tomz-20211231.xsd#PropertyAndEquipmentDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails1" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails2" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails" xlink:href="tomz-20211231.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails1" xlink:href="tomz-20211231.xsd#LeasesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails2" xlink:href="tomz-20211231.xsd#LeasesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails3" xlink:href="tomz-20211231.xsd#LeasesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails4" xlink:href="tomz-20211231.xsd#LeasesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetailsNarrative" xlink:href="tomz-20211231.xsd#LeasesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:href="tomz-20211231.xsd#CloudComputingServiceContractDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails1" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails2" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails3" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative" xlink:href="tomz-20211231.xsd#CommitmentsAndContingenciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:href="tomz-20211231.xsd#ContractsAndAgreementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:href="tomz-20211231.xsd#ContractsAndAgreementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="tomz-20211231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyDetails" xlink:href="tomz-20211231.xsd#AccruedWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LoanPayableDetailsNarrative" xlink:href="tomz-20211231.xsd#LoanPayableDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails1" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails2" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails3" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:href="tomz-20211231.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:href="tomz-20211231.xsd#CustomerConcentrationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:href="tomz-20211231.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssets" xlink:label="loc_us-gaapOtherAssets" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="loc_us-gaapOtherAssetsCurrent" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherAssets" xlink:to="loc_us-gaapOtherAssetsCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet" />
    <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet" xlink:type="arc" weight="1" />
    <link:calculationArc order="14" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent" />
    <link:calculationArc order="15" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" />
    <link:calculationArc order="16" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerDepositsCurrent" xlink:label="loc_us-gaapCustomerDepositsCurrent" />
    <link:calculationArc order="17" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent" />
    <link:calculationArc order="18" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermLoansPayable" xlink:label="loc_us-gaapLongTermLoansPayable" />
    <link:calculationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_us-gaapLongTermLoansPayable" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent" />
    <link:calculationArc order="20" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities" />
    <link:calculationArc order="21" 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="22" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue" />
    <link:calculationArc order="23" 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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit" />
    <link:calculationArc order="25" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity" />
    <link:calculationArc order="26" 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="27" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="loc_us-gaapNonoperatingIncomeExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapNetIncomeLoss" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherDepreciationAndAmortization" xlink:label="loc_us-gaapOtherDepreciationAndAmortization" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapOtherDepreciationAndAmortization" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAssetAmortizationExpense" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAssetAmortizationExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:label="loc_us-gaapCapitalizedComputerSoftwareAmortization1" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapCapitalizedComputerSoftwareAmortization1" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_EquityCompensationExpense" xlink:label="loc_tomzEquityCompensationExpense" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_tomzEquityCompensationExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" xlink:label="loc_us-gaapIssuanceOfStockAndWarrantsForServicesOrClaims" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIssuanceOfStockAndWarrantsForServicesOrClaims" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryLIFOReservePeriodCharge" xlink:label="loc_us-gaapInventoryLIFOReservePeriodCharge" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapInventoryLIFOReservePeriodCharge" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="loc_us-gaapGainsLossesOnExtinguishmentOfDebt" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapGainsLossesOnExtinguishmentOfDebt" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsReceivable" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsReceivable" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaapIncreaseDecreaseInInventories" />
    <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInInventories" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="loc_us-gaapIncreaseDecreaseInPrepaidExpense" />
    <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInPrepaidExpense" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInDeposits" xlink:label="loc_us-gaapIncreaseDecreaseInDeposits" />
    <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInDeposits" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="loc_us-gaapIncreaseDecreaseInOtherReceivables" />
    <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInOtherReceivables" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="loc_us-gaapIncreaseDecreaseInOtherOperatingAssets" />
    <link:calculationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInOtherOperatingAssets" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayable" />
    <link:calculationArc order="17" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedLiabilities" />
    <link:calculationArc order="18" 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="tomz-20211231.xsd#tomz_DebtInstrumentIncreasesAccruedInterest" xlink:label="loc_tomzDebtInstrumentIncreasesAccruedInterest" />
    <link:calculationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_tomzDebtInstrumentIncreasesAccruedInterest" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInCustomerDeposits" xlink:label="loc_us-gaapIncreaseDecreaseInCustomerDeposits" />
    <link:calculationArc order="20" 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-20211231.xsd#tomz_IncreaseDecreaseInLeaseLiabilities" xlink:label="loc_tomzIncreaseDecreaseInLeaseLiabilities" />
    <link:calculationArc order="21" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CapitalizedPatentAndTrademarkCosts" xlink:label="loc_tomzCapitalizedPatentAndTrademarkCosts" />
    <link:calculationArc order="22" 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-20211231.xsd#tomz_PurchaseOfPropertyAndEquipment" xlink:label="loc_tomzPurchaseOfPropertyAndEquipment" />
    <link:calculationArc order="23" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromIssuanceOfWarrants" xlink:label="loc_us-gaapProceedsFromIssuanceOfWarrants" />
    <link:calculationArc order="24" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="loc_us-gaapProceedsFromStockOptionsExercised" />
    <link:calculationArc order="25" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromOtherDebt" xlink:label="loc_us-gaapProceedsFromOtherDebt" />
    <link:calculationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:to="loc_us-gaapProceedsFromOtherDebt" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RepaymentOfPrincipalBalanceOnConvertibleNote" xlink:label="loc_tomzRepaymentOfPrincipalBalanceOnConvertibleNote" />
    <link:calculationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:to="loc_tomzRepaymentOfPrincipalBalanceOnConvertibleNote" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" />
    <link:calculationArc order="28" 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="29" 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="30" 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/LoanPayable" xlink:title="000021 - Disclosure - LOAN PAYABLE" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxes" xlink:title="000022 - Disclosure - INCOME TAXES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentration" xlink:title="000023 - Disclosure - CUSTOMER CONCENTRATION" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEvents" xlink:title="000024 - Disclosure - SUBSEQUENT EVENTS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:title="000026 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesTables" xlink:title="000027 - Disclosure - INVENTORIES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentTables" xlink:title="000028 - Disclosure - PROPERTY AND EQUIPMENT (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsTables" xlink:title="000029 - Disclosure - INTANGIBLE ASSETS (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesTables" xlink:title="000030 - Disclosure - LEASES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:title="000031 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/HareholdersEquityTables" xlink:title="000032 - Disclosure - HAREHOLDERS' EQUITY (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsTables" xlink:title="000033 - Disclosure - CONTRACTS AND AGREEMENTS (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:title="000034 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyTables" xlink:title="000035 - Disclosure - ACCRUED WARRANTY (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesTables" xlink:title="000036 - Disclosure - INCOME TAXES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:title="000037 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:title="000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:title="000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="000040 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesDetails" xlink:title="000041 - Disclosure - INVENTORIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryRawMaterials" xlink:label="loc_us-gaapInventoryRawMaterials" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapInventoryNet" xlink:to="loc_us-gaapInventoryRawMaterials" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryFinishedGoods" xlink:label="loc_us-gaapInventoryFinishedGoods" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapInventoryNet" xlink:to="loc_us-gaapInventoryFinishedGoods" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:title="000042 - Disclosure - VENDOR DEPOSITS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:title="000043 - Disclosure - PROPERTY AND EQUIPMENT (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaapPropertyPlantAndEquipmentGross" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross" xlink:label="loc_us-gaapCapitalizedCostsOilAndGasProducingActivitiesGross" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPropertyPlantAndEquipmentGross" xlink:to="loc_us-gaapCapitalizedCostsOilAndGasProducingActivitiesGross" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConstructionInProgressGross" xlink:label="loc_us-gaapConstructionInProgressGross" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPropertyPlantAndEquipmentGross" xlink:to="loc_us-gaapConstructionInProgressGross" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseholdImprovementsGross" xlink:label="loc_us-gaapLeaseholdImprovementsGross" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPropertyPlantAndEquipmentGross" xlink:to="loc_us-gaapLeaseholdImprovementsGross" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ComputerSoftware" xlink:label="loc_tomzComputerSoftware" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPropertyPlantAndEquipmentGross" xlink:to="loc_tomzComputerSoftware" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:label="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPropertyPlantAndEquipmentGross" xlink:to="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_Equipments" xlink:label="loc_tomzEquipments" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPropertyPlantAndEquipmentGross" xlink:to="loc_tomzEquipments" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FurnitureAndFixturesGross" xlink:label="loc_us-gaapFurnitureAndFixturesGross" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapPropertyPlantAndEquipmentGross" xlink:to="loc_us-gaapFurnitureAndFixturesGross" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:title="000044 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails" xlink:title="000045 - Disclosure - INTANGIBLE ASSETS (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails1" xlink:title="000046 - Disclosure - INTANGIBLE ASSETS (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails2" xlink:title="000047 - Disclosure - INTANGIBLE ASSETS (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFive" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFour" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearThree" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsNet" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:title="000048 - Disclosure - INTANGIBLE ASSETS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails" xlink:title="000049 - Disclosure - LEASES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaapOperatingLeaseLiability" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingLeaseLiability" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingLeaseLiability" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails1" xlink:title="000050 - Disclosure - LEASES (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails2" xlink:title="000051 - Disclosure - LEASES (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails3" xlink:title="000052 - Disclosure - LEASES (Details 3)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails4" xlink:title="000053 - Disclosure - LEASES (Details 4)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetailsNarrative" xlink:title="000054 - Disclosure - LEASES (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:title="000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareNet" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="000056 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:title="000057 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails" xlink:title="000058 - Disclosure - SHAREHOLDERS EQUITY (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails1" xlink:title="000059 - Disclosure - SHAREHOLDERS EQUITY (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails2" xlink:title="000060 - Disclosure - SHAREHOLDERS EQUITY (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails3" xlink:title="000061 - Disclosure - SHAREHOLDERS EQUITY (Details 3)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:title="000062 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative" xlink:title="000063 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:title="000064 - Disclosure - CONTRACTS AND AGREEMENTS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractualObligation" xlink:label="loc_us-gaapContractualObligation" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractualObligationDueInNextTwelveMonths" xlink:label="loc_us-gaapContractualObligationDueInNextTwelveMonths" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapContractualObligation" xlink:to="loc_us-gaapContractualObligationDueInNextTwelveMonths" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:title="000065 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="000066 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:label="loc_us-gaapOtherAccruedLiabilitiesCurrentAndNoncurrent" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" xlink:to="loc_us-gaapOtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:label="loc_us-gaapExtendedProductWarrantyAccrualCurrent" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" xlink:to="loc_us-gaapExtendedProductWarrantyAccrualCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedIncomeTaxes" xlink:label="loc_us-gaapAccruedIncomeTaxes" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" xlink:to="loc_us-gaapAccruedIncomeTaxes" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_SalesTaxPayable" xlink:label="loc_tomzSalesTaxPayable" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" xlink:to="loc_tomzSalesTaxPayable" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DirectorFeesCurrentAndNoncurrent" xlink:label="loc_tomzDirectorFeesCurrentAndNoncurrent" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" xlink:to="loc_tomzDirectorFeesCurrentAndNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent" xlink:label="loc_us-gaapAccruedPayrollTaxesCurrentAndNoncurrent" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" xlink:to="loc_us-gaapAccruedPayrollTaxesCurrentAndNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent" xlink:label="loc_us-gaapEmployeeRelatedLiabilitiesCurrentAndNoncurrent" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" xlink:to="loc_us-gaapEmployeeRelatedLiabilitiesCurrentAndNoncurrent" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyDetails" xlink:title="000067 - Disclosure - ACCRUED WARRANTY (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LoanPayableDetailsNarrative" xlink:title="000068 - Disclosure - LOAN PAYABLE (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails" xlink:title="000069 - Disclosure - INCOME TAXES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentIncomeTaxExpenseBenefit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentFederalTaxExpenseBenefit" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapCurrentFederalTaxExpenseBenefit" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentStateAndLocalTaxExpenseBenefit" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapCurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentForeignTaxExpenseBenefit" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapCurrentForeignTaxExpenseBenefit" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredIncomeTaxExpenseBenefit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredFederalIncomeTaxExpenseBenefit" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapDeferredFederalIncomeTaxExpenseBenefit" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredStateAndLocalIncomeTaxExpenseBenefit" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapDeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredForeignIncomeTaxExpenseBenefit" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefit" xlink:to="loc_us-gaapDeferredForeignIncomeTaxExpenseBenefit" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails1" xlink:title="000070 - Disclosure - INCOME TAXES (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails2" xlink:title="000071 - Disclosure - INCOME TAXES (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails3" xlink:title="000072 - Disclosure - INCOME TAXES (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="loc_us-gaapDeferredTaxAssetsNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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-20211231.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-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="000073 - Disclosure - INCOME TAXES (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:title="000074 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:title="000075 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)" />
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>10
<FILENAME>tomz-20211231_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/29/2022-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2022 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-20211231.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tomz-20211231.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:href="tomz-20211231.xsd#CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfOperations" xlink:href="tomz-20211231.xsd#CondensedConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:href="tomz-20211231.xsd#CondensedConsolidatedStatementsOfStockholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:href="tomz-20211231.xsd#CondensedConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/DescriptionOfBusiness" xlink:href="tomz-20211231.xsd#DescriptionOfBusiness" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/INVENTORIES" xlink:href="tomz-20211231.xsd#INVENTORIES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDeposits" xlink:href="tomz-20211231.xsd#VendorDeposits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipment" xlink:href="tomz-20211231.xsd#PropertyAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssets" xlink:href="tomz-20211231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LEASES" xlink:href="tomz-20211231.xsd#LEASES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCosts" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContract" xlink:href="tomz-20211231.xsd#CloudComputingServiceContract" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquity" xlink:href="tomz-20211231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingencies" xlink:href="tomz-20211231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreements" xlink:href="tomz-20211231.xsd#ContractsAndAgreements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:href="tomz-20211231.xsd#AccruedExpensesAndOtherCurrentLiabilities" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarranty" xlink:href="tomz-20211231.xsd#AccruedWarranty" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LoanPayable" xlink:href="tomz-20211231.xsd#LoanPayable" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxes" xlink:href="tomz-20211231.xsd#IncomeTaxes" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentration" xlink:href="tomz-20211231.xsd#CustomerConcentration" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEvents" xlink:href="tomz-20211231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesTables" xlink:href="tomz-20211231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentTables" xlink:href="tomz-20211231.xsd#PropertyAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsTables" xlink:href="tomz-20211231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesTables" xlink:href="tomz-20211231.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCostsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/HareholdersEquityTables" xlink:href="tomz-20211231.xsd#HareholdersEquityTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsTables" xlink:href="tomz-20211231.xsd#ContractsAndAgreementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:href="tomz-20211231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyTables" xlink:href="tomz-20211231.xsd#AccruedWarrantyTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesTables" xlink:href="tomz-20211231.xsd#IncomeTaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesDetails" xlink:href="tomz-20211231.xsd#InventoriesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:href="tomz-20211231.xsd#VendorDepositsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:href="tomz-20211231.xsd#PropertyAndEquipmentDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:href="tomz-20211231.xsd#PropertyAndEquipmentDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails1" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails2" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails" xlink:href="tomz-20211231.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails1" xlink:href="tomz-20211231.xsd#LeasesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails2" xlink:href="tomz-20211231.xsd#LeasesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails3" xlink:href="tomz-20211231.xsd#LeasesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails4" xlink:href="tomz-20211231.xsd#LeasesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetailsNarrative" xlink:href="tomz-20211231.xsd#LeasesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:href="tomz-20211231.xsd#CloudComputingServiceContractDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails1" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails2" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails3" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative" xlink:href="tomz-20211231.xsd#CommitmentsAndContingenciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:href="tomz-20211231.xsd#ContractsAndAgreementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:href="tomz-20211231.xsd#ContractsAndAgreementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="tomz-20211231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyDetails" xlink:href="tomz-20211231.xsd#AccruedWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LoanPayableDetailsNarrative" xlink:href="tomz-20211231.xsd#LoanPayableDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails1" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails2" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails3" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:href="tomz-20211231.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:href="tomz-20211231.xsd#CustomerConcentrationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:href="tomz-20211231.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/2021q4/dei-2021q4.xsd#dei_CoverAbstract" xlink:label="loc_deiCoverAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.xsd#dei_AuditorName" xlink:label="loc_deiAuditorName" />
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAuditorName" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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/2021q4/dei-2021q4.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: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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaapStatementOfFinancialPositionAbstract_74b26c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_28ef25" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_74b26c" xlink:to="loc_us-gaapStatementTable_28ef25" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_dffcaa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_28ef25" xlink:to="loc_us-gaapStatementLineItems_dffcaa" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_1e5efa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_28ef25" xlink:to="loc_us-gaapStatementClassOfStockAxis_1e5efa" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_8aa5c8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_1e5efa" xlink:to="loc_us-gaapClassOfStockDomain_8aa5c8" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember_2eb227" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_8aa5c8" xlink:to="loc_us-gaapSeriesAPreferredStockMember_2eb227" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember_123c30" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_8aa5c8" xlink:to="loc_us-gaapSeriesBPreferredStockMember_123c30" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsAbstract" xlink:label="loc_us-gaapAssetsAbstract_5d41f0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dffcaa" xlink:to="loc_us-gaapAssetsAbstract_5d41f0" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="loc_us-gaapAssetsCurrentAbstract_2fd2ad" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract_5d41f0" xlink:to="loc_us-gaapAssetsCurrentAbstract_2fd2ad" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashEquivalentsAtCarryingValue_72419d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract_2fd2ad" xlink:to="loc_us-gaapCashEquivalentsAtCarryingValue_72419d" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent_42a190" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract_2fd2ad" xlink:to="loc_us-gaapAccountsReceivableNetCurrent_42a190" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherReceivablesNetCurrent" xlink:label="loc_us-gaapOtherReceivablesNetCurrent_e20cbb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract_2fd2ad" xlink:to="loc_us-gaapOtherReceivablesNetCurrent_e20cbb" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet_56aae0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract_2fd2ad" xlink:to="loc_us-gaapInventoryNet_56aae0" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DepositsAssetsCurrent" xlink:label="loc_us-gaapDepositsAssetsCurrent_9f330b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract_2fd2ad" xlink:to="loc_us-gaapDepositsAssetsCurrent_9f330b" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="loc_us-gaapPrepaidExpenseCurrent_4744fc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract_2fd2ad" xlink:to="loc_us-gaapPrepaidExpenseCurrent_4744fc" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent_b3e972" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract_2fd2ad" xlink:to="loc_us-gaapAssetsCurrent_b3e972" order="9" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet_17de81" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract_2fd2ad" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet_17de81" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsAbstract" xlink:label="loc_us-gaapOtherAssetsAbstract_d7a32a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsCurrentAbstract_2fd2ad" xlink:to="loc_us-gaapOtherAssetsAbstract_d7a32a" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_1faa4d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_d7a32a" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_1faa4d" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset_a4209b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_d7a32a" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset_a4209b" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers" xlink:label="loc_us-gaapCapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers_7c000e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_d7a32a" xlink:to="loc_us-gaapCapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers_7c000e" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="loc_us-gaapOtherAssetsCurrent_3c4c27" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_d7a32a" xlink:to="loc_us-gaapOtherAssetsCurrent_3c4c27" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssets" xlink:label="loc_us-gaapOtherAssets_11671d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_d7a32a" xlink:to="loc_us-gaapOtherAssets_11671d" order="16" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets_f463f0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_d7a32a" xlink:to="loc_us-gaapAssets_f463f0" order="17" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract_6b7779" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherAssetsAbstract_d7a32a" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract_6b7779" order="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="loc_us-gaapLiabilitiesCurrentAbstract_ce6706" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract_6b7779" xlink:to="loc_us-gaapLiabilitiesCurrentAbstract_ce6706" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent_ab2d07" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_ce6706" xlink:to="loc_us-gaapAccountsPayableCurrent_ab2d07" order="20" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_74a3f4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_ce6706" xlink:to="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_74a3f4" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CustomerDepositsCurrent" xlink:label="loc_us-gaapCustomerDepositsCurrent_4913bc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_ce6706" xlink:to="loc_us-gaapCustomerDepositsCurrent_4913bc" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_0dd7ae" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_ce6706" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_0dd7ae" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent_8a4c65" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_ce6706" xlink:to="loc_us-gaapLiabilitiesCurrent_8a4c65" order="24" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="loc_us-gaapLiabilitiesNoncurrentAbstract_f3180f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesCurrentAbstract_ce6706" xlink:to="loc_us-gaapLiabilitiesNoncurrentAbstract_f3180f" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermLoansPayable" xlink:label="loc_us-gaapLongTermLoansPayable_510377" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_f3180f" xlink:to="loc_us-gaapLongTermLoansPayable_510377" order="26" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_68287e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_f3180f" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_68287e" order="27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent_7899c0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_f3180f" xlink:to="loc_us-gaapLiabilitiesNoncurrent_7899c0" order="28" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities_313d26" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_f3180f" xlink:to="loc_us-gaapLiabilities_313d26" order="29" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_7442c6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesNoncurrentAbstract_f3180f" xlink:to="loc_us-gaapStockholdersEquityAbstract_7442c6" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue_003cc3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_7442c6" xlink:to="loc_us-gaapCommonStockValue_003cc3" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital_f4c6ae" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_7442c6" xlink:to="loc_us-gaapAdditionalPaidInCapital_f4c6ae" order="32" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit_dc6774" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_7442c6" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit_dc6774" order="33" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_38e582" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_7442c6" xlink:to="loc_us-gaapStockholdersEquity_38e582" order="34" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity_aeccf5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_7442c6" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquity_aeccf5" order="35" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue_8a8dc1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_7442c6" xlink:to="loc_us-gaapPreferredStockValue_8a8dc1" order="36" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaapStatementOfFinancialPositionAbstract_d0216d" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_f9e46f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_d0216d" xlink:to="loc_us-gaapStatementTable_f9e46f" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_778f19" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_f9e46f" xlink:to="loc_us-gaapStatementLineItems_778f19" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_ac1dd1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_f9e46f" xlink:to="loc_us-gaapStatementClassOfStockAxis_ac1dd1" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_ac06c3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_ac1dd1" xlink:to="loc_us-gaapClassOfStockDomain_ac06c3" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember_d53d2b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_ac06c3" xlink:to="loc_us-gaapSeriesAPreferredStockMember_d53d2b" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember_a1895a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_ac06c3" xlink:to="loc_us-gaapSeriesBPreferredStockMember_a1895a" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_232103" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_778f19" xlink:to="loc_us-gaapStockholdersEquityAbstract_232103" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaapCommonStockParOrStatedValuePerShare_3f9417" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_232103" xlink:to="loc_us-gaapCommonStockParOrStatedValuePerShare_3f9417" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized_1eb944" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_232103" xlink:to="loc_us-gaapCommonStockSharesAuthorized_1eb944" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaapCommonStockSharesIssued_7bfb2a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_232103" xlink:to="loc_us-gaapCommonStockSharesIssued_7bfb2a" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaapCommonStockSharesOutstanding_8b57e3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_232103" xlink:to="loc_us-gaapCommonStockSharesOutstanding_8b57e3" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare_b47e82" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_232103" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare_b47e82" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized_b83a0a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_232103" xlink:to="loc_us-gaapPreferredStockSharesAuthorized_b83a0a" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued_16f77a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_232103" xlink:to="loc_us-gaapPreferredStockSharesIssued_16f77a" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding_4d3dd2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_232103" xlink:to="loc_us-gaapPreferredStockSharesOutstanding_4d3dd2" order="9" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="loc_us-gaapIncomeStatementAbstract_83743d" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues_bc3808" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_83743d" xlink:to="loc_us-gaapRevenues_bc3808" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue_4047a5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_83743d" xlink:to="loc_us-gaapCostOfRevenue_4047a5" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit_038e72" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_83743d" xlink:to="loc_us-gaapGrossProfit_038e72" order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="loc_us-gaapCostsAndExpensesAbstract_d02715" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_83743d" xlink:to="loc_us-gaapCostsAndExpensesAbstract_d02715" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProfessionalFees" xlink:label="loc_us-gaapProfessionalFees_72e70f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_d02715" xlink:to="loc_us-gaapProfessionalFees_72e70f" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization_f10af4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_d02715" xlink:to="loc_us-gaapDepreciationAndAmortization_f10af4" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SellingExpense" xlink:label="loc_us-gaapSellingExpense_7b37d8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_d02715" xlink:to="loc_us-gaapSellingExpense_7b37d8" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaapResearchAndDevelopmentExpense_9fa2f1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_d02715" xlink:to="loc_us-gaapResearchAndDevelopmentExpense_9fa2f1" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ConsultingFees" xlink:label="loc_tomzConsultingFees_3e5771" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_d02715" xlink:to="loc_tomzConsultingFees_3e5771" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherGeneralAndAdministrativeExpense" xlink:label="loc_us-gaapOtherGeneralAndAdministrativeExpense_3f8adc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_d02715" xlink:to="loc_us-gaapOtherGeneralAndAdministrativeExpense_3f8adc" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses_86400d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_d02715" xlink:to="loc_us-gaapOperatingExpenses_86400d" order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaapOperatingIncomeLoss_4d7a91" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_d02715" xlink:to="loc_us-gaapOperatingIncomeLoss_4d7a91" order="12" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherIncomeAbstract" xlink:label="loc_us-gaapOtherIncomeAbstract_027d70" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_d02715" xlink:to="loc_us-gaapOtherIncomeAbstract_027d70" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="loc_us-gaapGainsLossesOnExtinguishmentOfDebt_976544" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_027d70" xlink:to="loc_us-gaapGainsLossesOnExtinguishmentOfDebt_976544" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestIncomeOther" xlink:label="loc_us-gaapInterestIncomeOther_51a9e9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_027d70" xlink:to="loc_us-gaapInterestIncomeOther_51a9e9" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestExpense" xlink:label="loc_us-gaapInterestExpense_1316a1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_027d70" xlink:to="loc_us-gaapInterestExpense_1316a1" order="16" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="loc_us-gaapNonoperatingIncomeExpense_39a7c3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_027d70" xlink:to="loc_us-gaapNonoperatingIncomeExpense_39a7c3" order="17" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_e14ef2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_027d70" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_e14ef2" order="18" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit_884eab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_027d70" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit_884eab" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_48f20a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_027d70" xlink:to="loc_us-gaapNetIncomeLoss_48f20a" order="20" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract_8e7d40" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherIncomeAbstract_027d70" xlink:to="loc_us-gaapEarningsPerShareAbstract_8e7d40" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaapEarningsPerShareBasic_318335" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_8e7d40" xlink:to="loc_us-gaapEarningsPerShareBasic_318335" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted_3db2cf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_8e7d40" xlink:to="loc_us-gaapEarningsPerShareDiluted_3db2cf" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_f29bae" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_8e7d40" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_f29bae" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_24c060" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_8e7d40" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_24c060" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="loc_us-gaapStatementOfStockholdersEquityAbstract_493f96" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_582f9a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfStockholdersEquityAbstract_493f96" xlink:to="loc_us-gaapStatementTable_582f9a" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_f97ae2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_582f9a" xlink:to="loc_us-gaapStatementLineItems_f97ae2" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis_14b021" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_582f9a" xlink:to="loc_us-gaapStatementEquityComponentsAxis_14b021" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain_a41bf8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis_14b021" xlink:to="loc_us-gaapEquityComponentDomain_a41bf8" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember_f15679" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_a41bf8" xlink:to="loc_us-gaapCommonStockMember_f15679" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_SeriesAPreferredStocksMember" xlink:label="loc_tomzSeriesAPreferredStocksMember_9d47ac" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_a41bf8" xlink:to="loc_tomzSeriesAPreferredStocksMember_9d47ac" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaapAdditionalPaidInCapitalMember_992fa2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_a41bf8" xlink:to="loc_us-gaapAdditionalPaidInCapitalMember_992fa2" order="23" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaapRetainedEarningsMember_364e92" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_a41bf8" xlink:to="loc_us-gaapRetainedEarningsMember_364e92" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued_873df2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_us-gaapSharesIssued_873df2" order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_1e2424" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_us-gaapStockholdersEquity_1e2424" order="2" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_EquityCompensation" xlink:label="loc_tomzEquityCompensation_1f3eb9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_tomzEquityCompensation_1f3eb9" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockIssuedForServicesProvidedShares" xlink:label="loc_tomzCommonStockIssuedForServicesProvidedShares_0af034" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_tomzCommonStockIssuedForServicesProvidedShares_0af034" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockIssuedForServicesProvidedAmount" xlink:label="loc_tomzCommonStockIssuedForServicesProvidedAmount_401bdd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_tomzCommonStockIssuedForServicesProvidedAmount_401bdd" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ConversionOfNotesPayableIntoCommonStockShares" xlink:label="loc_tomzConversionOfNotesPayableIntoCommonStockShares_619732" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_tomzConversionOfNotesPayableIntoCommonStockShares_619732" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ConversionOfNotesPayableIntoCommonStockAmount" xlink:label="loc_tomzConversionOfNotesPayableIntoCommonStockAmount_e20f1c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_tomzConversionOfNotesPayableIntoCommonStockAmount_e20f1c" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsAndOptionsExercisedShares" xlink:label="loc_tomzWarrantsAndOptionsExercisedShares_d6f967" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_tomzWarrantsAndOptionsExercisedShares_d6f967" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsAndOptionsExercisedAmount" xlink:label="loc_tomzWarrantsAndOptionsExercisedAmount_3a5057" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_tomzWarrantsAndOptionsExercisedAmount_3a5057" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ReverseStockSplitAdjustmentShares" xlink:label="loc_tomzReverseStockSplitAdjustmentShares_bbc790" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_tomzReverseStockSplitAdjustmentShares_bbc790" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ReverseStockSplitAdjustmentAmount" xlink:label="loc_tomzReverseStockSplitAdjustmentAmount_a011d4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_tomzReverseStockSplitAdjustmentAmount_a011d4" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_8ca909" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_us-gaapNetIncomeLoss_8ca909" order="12" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_75184e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_75184e" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueNewIssues_96c4f9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueNewIssues_96c4f9" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued_90ed95" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_us-gaapSharesIssued_90ed95" order="15" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_063ade" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_f97ae2" xlink:to="loc_us-gaapStockholdersEquity_063ade" order="16" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="loc_us-gaapStatementOfCashFlowsAbstract_3b465e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_1721c2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_3b465e" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_1721c2" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_eda7e4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_1721c2" xlink:to="loc_us-gaapNetIncomeLoss_eda7e4" order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_1721c2" xlink:to="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherDepreciationAndAmortization" xlink:label="loc_us-gaapOtherDepreciationAndAmortization_8dc32d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" xlink:to="loc_us-gaapOtherDepreciationAndAmortization_8dc32d" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAssetAmortizationExpense_45bd2d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAssetAmortizationExpense_45bd2d" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:label="loc_us-gaapCapitalizedComputerSoftwareAmortization1_ace57e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" xlink:to="loc_us-gaapCapitalizedComputerSoftwareAmortization1_ace57e" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_EquityCompensationExpense" xlink:label="loc_tomzEquityCompensationExpense_2ea61e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" xlink:to="loc_tomzEquityCompensationExpense_2ea61e" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" xlink:label="loc_us-gaapIssuanceOfStockAndWarrantsForServicesOrClaims_1eb2d1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" xlink:to="loc_us-gaapIssuanceOfStockAndWarrantsForServicesOrClaims_1eb2d1" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease_a8ca6f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease_a8ca6f" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryLIFOReservePeriodCharge" xlink:label="loc_us-gaapInventoryLIFOReservePeriodCharge_e0d271" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" xlink:to="loc_us-gaapInventoryLIFOReservePeriodCharge_e0d271" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="loc_us-gaapGainsLossesOnExtinguishmentOfDebt_483648" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" xlink:to="loc_us-gaapGainsLossesOnExtinguishmentOfDebt_483648" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract" xlink:label="loc_us-gaapIncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract_347997" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_6d3178" xlink:to="loc_us-gaapIncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract_347997" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayableAbstract" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayableAbstract_513b3b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract_347997" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsPayableAbstract_513b3b" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsReceivable_210fc5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccountsPayableAbstract_513b3b" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsReceivable_210fc5" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaapIncreaseDecreaseInInventories_b3f5af" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccountsPayableAbstract_513b3b" xlink:to="loc_us-gaapIncreaseDecreaseInInventories_b3f5af" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="loc_us-gaapIncreaseDecreaseInPrepaidExpense_149cd6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccountsPayableAbstract_513b3b" xlink:to="loc_us-gaapIncreaseDecreaseInPrepaidExpense_149cd6" order="16" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInDeposits" xlink:label="loc_us-gaapIncreaseDecreaseInDeposits_b04fba" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccountsPayableAbstract_513b3b" xlink:to="loc_us-gaapIncreaseDecreaseInDeposits_b04fba" order="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherReceivables" xlink:label="loc_us-gaapIncreaseDecreaseInOtherReceivables_2e88da" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccountsPayableAbstract_513b3b" xlink:to="loc_us-gaapIncreaseDecreaseInOtherReceivables_2e88da" order="18" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="loc_us-gaapIncreaseDecreaseInOtherOperatingAssets_c885d5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccountsPayableAbstract_513b3b" xlink:to="loc_us-gaapIncreaseDecreaseInOtherOperatingAssets_c885d5" order="19" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedTaxesPayableAbstract" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedTaxesPayableAbstract_1b8c66" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccountsPayableAbstract_513b3b" xlink:to="loc_us-gaapIncreaseDecreaseInAccruedTaxesPayableAbstract_1b8c66" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayable_2a6b13" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccruedTaxesPayableAbstract_1b8c66" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsPayable_2a6b13" order="21" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedLiabilities_37a1cd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccruedTaxesPayableAbstract_1b8c66" xlink:to="loc_us-gaapIncreaseDecreaseInAccruedLiabilities_37a1cd" order="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DebtInstrumentIncreasesAccruedInterest" xlink:label="loc_tomzDebtInstrumentIncreasesAccruedInterest_70ed32" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccruedTaxesPayableAbstract_1b8c66" xlink:to="loc_tomzDebtInstrumentIncreasesAccruedInterest_70ed32" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncreaseDecreaseInCustomerDeposits" xlink:label="loc_us-gaapIncreaseDecreaseInCustomerDeposits_170c5f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccruedTaxesPayableAbstract_1b8c66" xlink:to="loc_us-gaapIncreaseDecreaseInCustomerDeposits_170c5f" order="24" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_IncreaseDecreaseInLeaseLiabilities" xlink:label="loc_tomzIncreaseDecreaseInLeaseLiabilities_f78bb4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccruedTaxesPayableAbstract_1b8c66" xlink:to="loc_tomzIncreaseDecreaseInLeaseLiabilities_f78bb4" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivities_7cfb25" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccruedTaxesPayableAbstract_1b8c66" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivities_7cfb25" order="26" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_be63bf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInAccruedTaxesPayableAbstract_1b8c66" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_be63bf" order="27" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CapitalizedPatentAndTrademarkCosts" xlink:label="loc_tomzCapitalizedPatentAndTrademarkCosts_164228" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_be63bf" xlink:to="loc_tomzCapitalizedPatentAndTrademarkCosts_164228" order="28" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_PurchaseOfPropertyAndEquipment" xlink:label="loc_tomzPurchaseOfPropertyAndEquipment_ffdc26" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_be63bf" xlink:to="loc_tomzPurchaseOfPropertyAndEquipment_ffdc26" order="29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivities_2616fc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_be63bf" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivities_2616fc" order="30" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_be63bf" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromIssuanceOfWarrants" xlink:label="loc_us-gaapProceedsFromIssuanceOfWarrants_65799e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" xlink:to="loc_us-gaapProceedsFromIssuanceOfWarrants_65799e" order="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="loc_us-gaapProceedsFromStockOptionsExercised_07b361" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" xlink:to="loc_us-gaapProceedsFromStockOptionsExercised_07b361" order="33" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromOtherDebt" xlink:label="loc_us-gaapProceedsFromOtherDebt_60ca46" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" xlink:to="loc_us-gaapProceedsFromOtherDebt_60ca46" order="34" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RepaymentOfPrincipalBalanceOnConvertibleNote" xlink:label="loc_tomzRepaymentOfPrincipalBalanceOnConvertibleNote_24cc39" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" xlink:to="loc_tomzRepaymentOfPrincipalBalanceOnConvertibleNote_24cc39" order="35" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivities_f0c30a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivities_f0c30a" order="36" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_736884" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_736884" order="37" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashAndCashEquivalentsAtCarryingValue_e397c9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" xlink:to="loc_us-gaapCashAndCashEquivalentsAtCarryingValue_e397c9" order="38" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashAndCashEquivalentsAtCarryingValue_394678" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" xlink:to="loc_us-gaapCashAndCashEquivalentsAtCarryingValue_394678" order="39" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="loc_us-gaapSupplementalCashFlowInformationAbstract_6061ef" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_bd7795" xlink:to="loc_us-gaapSupplementalCashFlowInformationAbstract_6061ef" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="loc_us-gaapInterestPaidNet_f4760d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSupplementalCashFlowInformationAbstract_6061ef" xlink:to="loc_us-gaapInterestPaidNet_f4760d" order="41" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="loc_us-gaapIncomeTaxesPaidNet_399833" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSupplementalCashFlowInformationAbstract_6061ef" xlink:to="loc_us-gaapIncomeTaxesPaidNet_399833" order="42" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_bdcc07" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSupplementalCashFlowInformationAbstract_6061ef" xlink:to="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_bdcc07" order="43" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_AccruedEquityCompensation" xlink:label="loc_tomzAccruedEquityCompensation_50c26a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_bdcc07" xlink:to="loc_tomzAccruedEquityCompensation_50c26a" order="44" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueConversionOfConvertibleSecurities_b2f0e6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_bdcc07" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueConversionOfConvertibleSecurities_b2f0e6" order="45" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_EquipmentNetTransferredToInventory" xlink:label="loc_tomzEquipmentNetTransferredToInventory_92ec2b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_bdcc07" xlink:to="loc_tomzEquipmentNetTransferredToInventory_92ec2b" order="46" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets" xlink:label="loc_tomzPatentAndTrademarkCostsReclassifiedFromOtherAssets_f4d98c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_bdcc07" xlink:to="loc_tomzPatentAndTrademarkCostsReclassifiedFromOtherAssets_f4d98c" order="47" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="loc_us-gaapOrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_22b2e2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NatureOfOperations" xlink:label="loc_us-gaapNatureOfOperations_45984b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_22b2e2" xlink:to="loc_us-gaapNatureOfOperations_45984b" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_6cc4e3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="loc_us-gaapSignificantAccountingPoliciesTextBlock_6dab09" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_6cc4e3" xlink:to="loc_us-gaapSignificantAccountingPoliciesTextBlock_6dab09" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaapInventoryDisclosureAbstract_1e8e13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="loc_us-gaapInventoryDisclosureTextBlock_e93378" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_1e8e13" xlink:to="loc_us-gaapInventoryDisclosureTextBlock_e93378" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:label="loc_us-gaapExtraordinaryAndUnusualItemsAbstract_0e51d4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_VendorDepositsTextBlock" xlink:label="loc_tomzVendorDepositsTextBlock_520b54" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtraordinaryAndUnusualItemsAbstract_0e51d4" xlink:to="loc_tomzVendorDepositsTextBlock_520b54" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_72b16e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentDisclosureTextBlock_c9b813" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_72b16e" xlink:to="loc_us-gaapPropertyPlantAndEquipmentDisclosureTextBlock_c9b813" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_c28d23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="loc_us-gaapIntangibleAssetsDisclosureTextBlock_85e79b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_c28d23" xlink:to="loc_us-gaapIntangibleAssetsDisclosureTextBlock_85e79b" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_683f20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:label="loc_us-gaapLeasesOfLesseeDisclosureTextBlock_8e3675" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_683f20" xlink:to="loc_us-gaapLeasesOfLesseeDisclosureTextBlock_8e3675" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareNetAbstract" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_bd1cc6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock" xlink:label="loc_us-gaapResearchDevelopmentAndComputerSoftwareDisclosureTextBlock_77aac6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_bd1cc6" xlink:to="loc_us-gaapResearchDevelopmentAndComputerSoftwareDisclosureTextBlock_77aac6" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_60b3fb" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CloudComputingServiceContractDisclosureTextBlock" xlink:label="loc_tomzCloudComputingServiceContractDisclosureTextBlock_47d0d9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_60b3fb" xlink:to="loc_tomzCloudComputingServiceContractDisclosureTextBlock_47d0d9" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_553d22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="loc_us-gaapStockholdersEquityNoteDisclosureTextBlock_433f85" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_553d22" xlink:to="loc_us-gaapStockholdersEquityNoteDisclosureTextBlock_433f85" 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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract_023908" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="loc_us-gaapCommitmentsAndContingenciesDisclosureTextBlock_9ec027" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract_023908" xlink:to="loc_us-gaapCommitmentsAndContingenciesDisclosureTextBlock_9ec027" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_82b30d" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ContractsAndAgreementsTextBlock" xlink:label="loc_tomzContractsAndAgreementsTextBlock_c1d19d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_82b30d" xlink:to="loc_tomzContractsAndAgreementsTextBlock_c1d19d" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_a7b800" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" xlink:label="loc_us-gaapAccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_bf94d0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_a7b800" xlink:to="loc_us-gaapAccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_bf94d0" order="1" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="loc_us-gaapDebtDisclosureAbstract_cc6117" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GuaranteesTextBlock" xlink:label="loc_us-gaapGuaranteesTextBlock_63f59b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_cc6117" xlink:to="loc_us-gaapGuaranteesTextBlock_63f59b" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LoanPayable" xlink:title="000021 - Disclosure - LOAN PAYABLE">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LoansPayableAbstract" xlink:label="loc_us-gaapLoansPayableAbstract_1930ac" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_LoansPayableDisclosureTextBlock" xlink:label="loc_tomzLoansPayableDisclosureTextBlock_c96eae" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLoansPayableAbstract_1930ac" xlink:to="loc_tomzLoansPayableDisclosureTextBlock_c96eae" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxes" xlink:title="000022 - Disclosure - INCOME TAXES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_468d45" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="loc_us-gaapIncomeTaxDisclosureTextBlock_220347" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_468d45" xlink:to="loc_us-gaapIncomeTaxDisclosureTextBlock_220347" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentration" xlink:title="000023 - Disclosure - CUSTOMER CONCENTRATION">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_1737fa" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskDisclosureTextBlock" xlink:label="loc_us-gaapConcentrationRiskDisclosureTextBlock_50818a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_1737fa" xlink:to="loc_us-gaapConcentrationRiskDisclosureTextBlock_50818a" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEvents" xlink:title="000024 - Disclosure - SUBSEQUENT EVENTS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaapSubsequentEventsAbstract_829f07" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="loc_us-gaapSubsequentEventsTextBlock_fcef16" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventsAbstract_829f07" xlink:to="loc_us-gaapSubsequentEventsTextBlock_fcef16" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_9d1665" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="loc_us-gaapConsolidationPolicyTextBlock_d27502" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapConsolidationPolicyTextBlock_d27502" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="loc_us-gaapPriorPeriodReclassificationAdjustmentDescription_245b9d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapPriorPeriodReclassificationAdjustmentDescription_245b9d" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="loc_us-gaapUseOfEstimates_161669" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapUseOfEstimates_161669" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:label="loc_us-gaapFairValueMeasurementPolicyPolicyTextBlock_903344" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapFairValueMeasurementPolicyPolicyTextBlock_903344" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="loc_us-gaapCashAndCashEquivalentsPolicyTextBlock_454abc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapCashAndCashEquivalentsPolicyTextBlock_454abc" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ReceivablesPolicyTextBlock" xlink:label="loc_us-gaapReceivablesPolicyTextBlock_89c705" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapReceivablesPolicyTextBlock_89c705" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="loc_us-gaapInventoryPolicyTextBlock_36e6ab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapInventoryPolicyTextBlock_36e6ab" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentPolicyTextBlock_896dc7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapPropertyPlantAndEquipmentPolicyTextBlock_896dc7" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="loc_us-gaapLesseeLeasesPolicyTextBlock_b68ff5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapLesseeLeasesPolicyTextBlock_b68ff5" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:label="loc_us-gaapResearchDevelopmentAndComputerSoftwarePolicyTextBlock_61e630" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapResearchDevelopmentAndComputerSoftwarePolicyTextBlock_61e630" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_AccountsPayablePolicyTextBlock" xlink:label="loc_tomzAccountsPayablePolicyTextBlock_dc673d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_tomzAccountsPayablePolicyTextBlock_dc673d" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ExtendedProductWarrantyPolicy" xlink:label="loc_us-gaapExtendedProductWarrantyPolicy_d536f5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapExtendedProductWarrantyPolicy_d536f5" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="loc_us-gaapIncomeTaxPolicyTextBlock_02da2f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapIncomeTaxPolicyTextBlock_02da2f" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="loc_us-gaapEarningsPerSharePolicyTextBlock_1fbd27" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapEarningsPerSharePolicyTextBlock_1fbd27" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="loc_us-gaapRevenueRecognitionPolicyTextBlock_56e7df" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapRevenueRecognitionPolicyTextBlock_56e7df" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="loc_us-gaapShareBasedCompensationOptionAndIncentivePlansPolicy_ffa2d2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapShareBasedCompensationOptionAndIncentivePlansPolicy_ffa2d2" order="16" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="loc_us-gaapConcentrationRiskCreditRisk_8c61eb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapConcentrationRiskCreditRisk_8c61eb" order="17" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_LonglivedAssetsIncludingAcquiredIntangibleAssets" xlink:label="loc_tomzLonglivedAssetsIncludingAcquiredIntangibleAssets_14b563" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_tomzLonglivedAssetsIncludingAcquiredIntangibleAssets_14b563" order="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="loc_us-gaapAdvertisingCostsPolicyTextBlock_f086d8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapAdvertisingCostsPolicyTextBlock_f086d8" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="loc_us-gaapResearchAndDevelopmentExpensePolicy_508e9f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapResearchAndDevelopmentExpensePolicy_508e9f" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="loc_us-gaapBusinessCombinationsPolicy_23a8d1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapBusinessCombinationsPolicy_23a8d1" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="loc_us-gaapNewAccountingPronouncementsPolicyPolicyTextBlock_bb3d29" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_9d1665" xlink:to="loc_us-gaapNewAccountingPronouncementsPolicyPolicyTextBlock_bb3d29" order="22" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:title="000026 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_04beb0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ImpairmentEffectsOnEarningsPerShareTableTextBlock" xlink:label="loc_us-gaapImpairmentEffectsOnEarningsPerShareTableTextBlock_34c869" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_04beb0" xlink:to="loc_us-gaapImpairmentEffectsOnEarningsPerShareTableTextBlock_34c869" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="loc_us-gaapDisaggregationOfRevenueTableTextBlock_adb34f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_04beb0" xlink:to="loc_us-gaapDisaggregationOfRevenueTableTextBlock_adb34f" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesTables" xlink:title="000027 - Disclosure - INVENTORIES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaapInventoryDisclosureAbstract_993948" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="loc_us-gaapScheduleOfInventoryCurrentTableTextBlock_97e87d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_993948" xlink:to="loc_us-gaapScheduleOfInventoryCurrentTableTextBlock_97e87d" 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="000028 - Disclosure - PROPERTY AND EQUIPMENT (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_074e4f" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentTextBlock_811c18" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_074e4f" xlink:to="loc_us-gaapPropertyPlantAndEquipmentTextBlock_811c18" 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="000029 - Disclosure - INTANGIBLE ASSETS (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_87218b" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_8760a9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_87218b" xlink:to="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_8760a9" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock" xlink:label="loc_us-gaapScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_285950" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_87218b" xlink:to="loc_us-gaapScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock_285950" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="loc_us-gaapScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_4e40e3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_87218b" xlink:to="loc_us-gaapScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_4e40e3" order="3" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesTables" xlink:title="000030 - Disclosure - LEASES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_508347" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="loc_us-gaapLeaseCostTableTextBlock_8c14e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_508347" xlink:to="loc_us-gaapLeaseCostTableTextBlock_8c14e2" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OperatingLeaseLiabilityTableTextBlock" xlink:label="loc_tomzOperatingLeaseLiabilityTableTextBlock_1b7660" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_508347" xlink:to="loc_tomzOperatingLeaseLiabilityTableTextBlock_1b7660" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_LeaseOtherInformationTableTextBlock" xlink:label="loc_tomzLeaseOtherInformationTableTextBlock_fafd85" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_508347" xlink:to="loc_tomzLeaseOtherInformationTableTextBlock_fafd85" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:label="loc_tomzSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_523949" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_508347" xlink:to="loc_tomzSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_523949" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock" xlink:label="loc_us-gaapLessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_5aeb4b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_508347" xlink:to="loc_us-gaapLessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock_5aeb4b" order="5" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:title="000031 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareNetAbstract" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_37939d" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CapitalizedSoftwareDevelopmentCostsTableTextBlock" xlink:label="loc_tomzCapitalizedSoftwareDevelopmentCostsTableTextBlock_92ca20" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_37939d" xlink:to="loc_tomzCapitalizedSoftwareDevelopmentCostsTableTextBlock_92ca20" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/HareholdersEquityTables" xlink:title="000032 - Disclosure - HAREHOLDERS' EQUITY (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_d561ab" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock" xlink:label="loc_us-gaapScheduleOfStockOptionsRollForwardTableTextBlock_c1c4ad" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_d561ab" xlink:to="loc_us-gaapScheduleOfStockOptionsRollForwardTableTextBlock_c1c4ad" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_6a94c0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_d561ab" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_6a94c0" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:label="loc_us-gaapScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_2b5086" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_d561ab" xlink:to="loc_us-gaapScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_2b5086" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsOutstandingAndExercisableByPriceRange" xlink:label="loc_tomzWarrantsOutstandingAndExercisableByPriceRange_22a672" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_d561ab" xlink:to="loc_tomzWarrantsOutstandingAndExercisableByPriceRange_22a672" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsTables" xlink:title="000033 - Disclosure - CONTRACTS AND AGREEMENTS (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:label="loc_us-gaapRestructuringAndRelatedActivitiesAbstract_1e0f4f" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ApproximateMinimumContractPaymentsTableTextBlock" xlink:label="loc_tomzApproximateMinimumContractPaymentsTableTextBlock_1f8db1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRestructuringAndRelatedActivitiesAbstract_1e0f4f" xlink:to="loc_tomzApproximateMinimumContractPaymentsTableTextBlock_1f8db1" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:title="000034 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_a8d0a2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:label="loc_us-gaapScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_e442c1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_a8d0a2" xlink:to="loc_us-gaapScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_e442c1" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyTables" xlink:title="000035 - Disclosure - ACCRUED WARRANTY (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="loc_us-gaapDebtDisclosureAbstract_faf6bf" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:label="loc_us-gaapScheduleOfProductWarrantyLiabilityTableTextBlock_2c74ad" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_faf6bf" xlink:to="loc_us-gaapScheduleOfProductWarrantyLiabilityTableTextBlock_2c74ad" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesTables" xlink:title="000036 - Disclosure - INCOME TAXES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_9d5b82" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="loc_us-gaapScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_a2083b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_9d5b82" xlink:to="loc_us-gaapScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_a2083b" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="loc_us-gaapScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_517754" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_9d5b82" xlink:to="loc_us-gaapScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock_517754" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="loc_us-gaapScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_ed2402" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_9d5b82" xlink:to="loc_us-gaapScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_ed2402" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="loc_us-gaapScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_2933ca" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_9d5b82" xlink:to="loc_us-gaapScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_2933ca" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:title="000037 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_6b45ce" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_2c9683" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_6b45ce" xlink:to="loc_us-gaapNetIncomeLoss_2c9683" order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_InterestOnConvertibleDebt" xlink:label="loc_tomzInterestOnConvertibleDebt_153d53" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_6b45ce" xlink:to="loc_tomzInterestOnConvertibleDebt_153d53" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_NetLossAttributableToCommonShareholders" xlink:label="loc_tomzNetLossAttributableToCommonShareholders_277d3e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_6b45ce" xlink:to="loc_tomzNetLossAttributableToCommonShareholders_277d3e" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_cb4c99" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_6b45ce" xlink:to="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_cb4c99" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_4531d9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_cb4c99" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_4531d9" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_81ce42" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_cb4c99" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_81ce42" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:label="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasicAbstract_34791a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_cb4c99" xlink:to="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasicAbstract_34791a" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_Basic" xlink:label="loc_tomzBasic_59b9ca" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasicAbstract_34791a" xlink:to="loc_tomzBasic_59b9ca" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_Diluted" xlink:label="loc_tomzDiluted_7453ab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasicAbstract_34791a" xlink:to="loc_tomzDiluted_7453ab" order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:title="000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_0ab533" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_c06212" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_0ab533" xlink:to="loc_us-gaapStatementTable_c06212" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_31b633" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_c06212" xlink:to="loc_us-gaapStatementLineItems_31b633" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaapIncomeStatementLocationAxis_d5f97f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_c06212" xlink:to="loc_us-gaapIncomeStatementLocationAxis_d5f97f" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain_a644aa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationAxis_d5f97f" xlink:to="loc_us-gaapIncomeStatementLocationDomain_a644aa" order="20" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DilutedNetIncomeorLossMember" xlink:label="loc_tomzDilutedNetIncomeorLossMember_9c98e1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationDomain_a644aa" xlink:to="loc_tomzDilutedNetIncomeorLossMember_9c98e1" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_3b2372" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_31b633" xlink:to="loc_us-gaapNetIncomeLoss_3b2372" order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_9a80ff" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_31b633" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_9a80ff" order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" xlink:label="loc_us-gaapIncrementalCommonSharesAttributableToCallOptionsAndWarrants_17b2d6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_31b633" xlink:to="loc_us-gaapIncrementalCommonSharesAttributableToCallOptionsAndWarrants_17b2d6" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities" xlink:label="loc_us-gaapIncrementalCommonSharesAttributableToConversionOfDebtSecurities_d4cca9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_31b633" xlink:to="loc_us-gaapIncrementalCommonSharesAttributableToConversionOfDebtSecurities_d4cca9" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="loc_us-gaapIncrementalCommonSharesAttributableToShareBasedPaymentArrangements_235860" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_31b633" xlink:to="loc_us-gaapIncrementalCommonSharesAttributableToShareBasedPaymentArrangements_235860" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements" xlink:label="loc_us-gaapIncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements_02d228" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_31b633" xlink:to="loc_us-gaapIncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements_02d228" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_540f84" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_31b633" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_540f84" order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaapEarningsPerShareBasic_2e1898" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_31b633" xlink:to="loc_us-gaapEarningsPerShareBasic_2e1898" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted_fb0a13" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_31b633" xlink:to="loc_us-gaapEarningsPerShareDiluted_fb0a13" order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:title="000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_b4c4be" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_cf9d29" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_b4c4be" xlink:to="loc_us-gaapStatementTable_cf9d29" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_9f0a8f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_cf9d29" xlink:to="loc_us-gaapStatementLineItems_9f0a8f" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis_14c287" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_cf9d29" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis_14c287" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_f9babd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis_14c287" xlink:to="loc_us-gaapSegmentDomain_f9babd" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="loc_us-gaapIncomeTaxAuthorityAxis_03b44d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_cf9d29" xlink:to="loc_us-gaapIncomeTaxAuthorityAxis_03b44d" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="loc_us-gaapIncomeTaxAuthorityDomain_5efab2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxAuthorityAxis_03b44d" xlink:to="loc_us-gaapIncomeTaxAuthorityDomain_5efab2" order="40" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_SteraMistProductMember" xlink:label="loc_tomzSteraMistProductMember_0b90b1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_f9babd" xlink:to="loc_tomzSteraMistProductMember_0b90b1" order="41" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ServiceAndTrainingMember" xlink:label="loc_tomzServiceAndTrainingMember_b989c7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_f9babd" xlink:to="loc_tomzServiceAndTrainingMember_b989c7" order="42" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="loc_us-gaapDomesticCountryMember_414277" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxAuthorityDomain_5efab2" xlink:to="loc_us-gaapDomesticCountryMember_414277" order="43" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_InternationalMember" xlink:label="loc_tomzInternationalMember_0f269f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxAuthorityDomain_5efab2" xlink:to="loc_tomzInternationalMember_0f269f" order="44" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ProductAndServiceRevenueMember" xlink:label="loc_tomzProductAndServiceRevenueMember_820cc4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_f9babd" xlink:to="loc_tomzProductAndServiceRevenueMember_820cc4" order="45" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RevenueByGeographicRegionMember" xlink:label="loc_tomzRevenueByGeographicRegionMember_c6e828" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_f9babd" xlink:to="loc_tomzRevenueByGeographicRegionMember_c6e828" order="46" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues_bcbafa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_9f0a8f" xlink:to="loc_us-gaapRevenues_bcbafa" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ChangesInRevenue" xlink:label="loc_tomzChangesInRevenue_b4604c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_9f0a8f" xlink:to="loc_tomzChangesInRevenue_b4604c" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="000040 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_5e8529" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_21d956" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_5e8529" xlink:to="loc_us-gaapStatementTable_21d956" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_032c0d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_21d956" xlink:to="loc_us-gaapStatementLineItems_032c0d" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis_98b562" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_21d956" xlink:to="loc_srtMajorCustomersAxis_98b562" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_22ba41" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtMajorCustomersAxis_98b562" xlink:to="loc_srtNameOfMajorCustomerDomain_22ba41" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ExtinguishmentOfDebtAxis" xlink:label="loc_us-gaapExtinguishmentOfDebtAxis_82876a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_21d956" xlink:to="loc_us-gaapExtinguishmentOfDebtAxis_82876a" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ExtinguishmentOfDebtTypeDomain" xlink:label="loc_us-gaapExtinguishmentOfDebtTypeDomain_485e62" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtinguishmentOfDebtAxis_82876a" xlink:to="loc_us-gaapExtinguishmentOfDebtTypeDomain_485e62" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaapIncomeStatementLocationAxis_79bb2f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_21d956" xlink:to="loc_us-gaapIncomeStatementLocationAxis_79bb2f" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain_5f8918" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationAxis_79bb2f" xlink:to="loc_us-gaapIncomeStatementLocationDomain_5f8918" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis_7d3eeb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_21d956" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis_7d3eeb" order="70" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_13f64a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis_7d3eeb" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_13f64a" order="70" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_d8d5ea" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_21d956" xlink:to="loc_us-gaapStatementClassOfStockAxis_d8d5ea" order="80" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_22373e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_d8d5ea" xlink:to="loc_us-gaapClassOfStockDomain_22373e" order="80" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis_c58163" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_21d956" xlink:to="loc_us-gaapPlanNameAxis_c58163" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_e7e568" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameAxis_c58163" xlink:to="loc_us-gaapPlanNameDomain_e7e568" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_d9580e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_21d956" xlink:to="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_d9580e" order="120" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="loc_us-gaapRelatedPartyDomain_96b888" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_d9580e" xlink:to="loc_us-gaapRelatedPartyDomain_96b888" order="120" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember_5bb09d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_22373e" xlink:to="loc_us-gaapSeriesAPreferredStockMember_5bb09d" order="121" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_TwoVendorsMember" xlink:label="loc_tomzTwoVendorsMember_0b2470" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_22ba41" xlink:to="loc_tomzTwoVendorsMember_0b2470" order="122" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccountsPayableMember" xlink:label="loc_us-gaapAccountsPayableMember_af3955" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtinguishmentOfDebtTypeDomain_485e62" xlink:to="loc_us-gaapAccountsPayableMember_af3955" order="123" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfSalesMember" xlink:label="loc_us-gaapCostOfSalesMember_2a0e2d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationDomain_5f8918" xlink:to="loc_us-gaapCostOfSalesMember_2a0e2d" order="124" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember_6e743d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain_13f64a" xlink:to="loc_tomzWarrantsMember_6e743d" order="125" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember_266a4a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_22373e" xlink:to="loc_tomzStockOptionsMember_266a4a" order="126" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_EquityIncentivePlanOneMember" xlink:label="loc_tomzEquityIncentivePlanOneMember_0baba0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_e7e568" xlink:to="loc_tomzEquityIncentivePlanOneMember_0baba0" order="127" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_DirectorMember" xlink:label="loc_srtDirectorMember_869107" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyDomain_96b888" xlink:to="loc_srtDirectorMember_869107" order="128" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="loc_us-gaapProvisionForDoubtfulAccounts_467970" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapProvisionForDoubtfulAccounts_467970" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivable_d28fc3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivable_d28fc3" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryValuationReserves" xlink:label="loc_us-gaapInventoryValuationReserves_ba3291" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapInventoryValuationReserves_ba3291" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:label="loc_us-gaapCapitalizedComputerSoftwareAmortization1_d395ab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapCapitalizedComputerSoftwareAmortization1_d395ab" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_bfd4a6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_bfd4a6" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AdvertisingExpense" xlink:label="loc_us-gaapAdvertisingExpense_6fac9f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapAdvertisingExpense_6fac9f" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ResearchAndDevelopmentsExpense" xlink:label="loc_tomzResearchAndDevelopmentsExpense_124993" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_tomzResearchAndDevelopmentsExpense_124993" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FederalDepositInsuranceCorporationPremiumExpense" xlink:label="loc_us-gaapFederalDepositInsuranceCorporationPremiumExpense_7630d1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapFederalDepositInsuranceCorporationPremiumExpense_7630d1" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockIssuableUponConversionOfOutstandingShares" xlink:label="loc_tomzCommonStockIssuableUponConversionOfOutstandingShares_973b2b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_tomzCommonStockIssuableUponConversionOfOutstandingShares_973b2b" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaapConcentrationRiskPercentage1_606718" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapConcentrationRiskPercentage1_606718" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_b61ebf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_b61ebf" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized_ec66c7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapPreferredStockSharesAuthorized_ec66c7" order="12" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized_3d222d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_us-gaapCommonStockSharesAuthorized_3d222d" order="13" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedVested" xlink:label="loc_tomzCommonStockSharesIssuedVested_66593a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_032c0d" xlink:to="loc_tomzCommonStockSharesIssuedVested_66593a" order="14" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesDetails" xlink:title="000041 - Disclosure - INVENTORIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaapInventoryDisclosureAbstract_286eef" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryFinishedGoods" xlink:label="loc_us-gaapInventoryFinishedGoods_e410e4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_286eef" xlink:to="loc_us-gaapInventoryFinishedGoods_e410e4" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryRawMaterials" xlink:label="loc_us-gaapInventoryRawMaterials_3ebf70" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_286eef" xlink:to="loc_us-gaapInventoryRawMaterials_3ebf70" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet_927df8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_286eef" xlink:to="loc_us-gaapInventoryNet_927df8" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:title="000042 - Disclosure - VENDOR DEPOSITS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DepositsAbstract" xlink:label="loc_us-gaapDepositsAbstract_12e73c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DepositsAssetsCurrent" xlink:label="loc_us-gaapDepositsAssetsCurrent_ff078a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDepositsAbstract_12e73c" xlink:to="loc_us-gaapDepositsAssetsCurrent_ff078a" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:title="000043 - Disclosure - PROPERTY AND EQUIPMENT (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FurnitureAndFixturesGross" xlink:label="loc_us-gaapFurnitureAndFixturesGross_912aa4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" xlink:to="loc_us-gaapFurnitureAndFixturesGross_912aa4" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_Equipments" xlink:label="loc_tomzEquipments_5efa66" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" xlink:to="loc_tomzEquipments_5efa66" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:label="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles_522118" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" xlink:to="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles_522118" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ComputerSoftware" xlink:label="loc_tomzComputerSoftware_cf5f77" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" xlink:to="loc_tomzComputerSoftware_cf5f77" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeaseholdImprovementsGross" xlink:label="loc_us-gaapLeaseholdImprovementsGross_a6d54a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" xlink:to="loc_us-gaapLeaseholdImprovementsGross_a6d54a" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConstructionInProgressGross" xlink:label="loc_us-gaapConstructionInProgressGross_fdf60b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" xlink:to="loc_us-gaapConstructionInProgressGross_fdf60b" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross" xlink:label="loc_us-gaapCapitalizedCostsOilAndGasProducingActivitiesGross_fea08a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" xlink:to="loc_us-gaapCapitalizedCostsOilAndGasProducingActivitiesGross_fea08a" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaapPropertyPlantAndEquipmentGross_26b9a0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" xlink:to="loc_us-gaapPropertyPlantAndEquipmentGross_26b9a0" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_1d8d3f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" xlink:to="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_1d8d3f" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet_c88d1a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_2d2dd9" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet_c88d1a" 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="000044 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_52b1e8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_Depreciation" xlink:label="loc_us-gaapDepreciation_ab1c84" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_52b1e8" xlink:to="loc_us-gaapDepreciation_ab1c84" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_AmortizationOfTenantImprovementAllowance" xlink:label="loc_tomzAmortizationOfTenantImprovementAllowance_6781e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_52b1e8" xlink:to="loc_tomzAmortizationOfTenantImprovementAllowance_6781e2" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails" xlink:title="000045 - Disclosure - INTANGIBLE ASSETS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_80a556" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsGross_93c6e7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_80a556" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsGross_93c6e7" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization_7bdf50" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_80a556" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization_7bdf50" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_IntangibleAssetsNet" xlink:label="loc_tomzIntangibleAssetsNet_8ce140" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_80a556" xlink:to="loc_tomzIntangibleAssetsNet_8ce140" order="3" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails1" xlink:title="000046 - Disclosure - INTANGIBLE ASSETS (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_eb4477" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IndefiniteLivedTrademarks" xlink:label="loc_us-gaapIndefiniteLivedTrademarks_7a741a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_eb4477" xlink:to="loc_us-gaapIndefiniteLivedTrademarks_7a741a" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_6b0d6f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_eb4477" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_6b0d6f" 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="000047 - Disclosure - INTANGIBLE ASSETS (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_f9598e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_d66877" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_f9598e" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_d66877" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_6b2b7c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_d66877" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_6b2b7c" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_659a33" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_d66877" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_659a33" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearThree_aeacc9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_d66877" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearThree_aeacc9" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFour_7c33e4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_d66877" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFour_7c33e4" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFive_2b1170" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_d66877" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFive_2b1170" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_bd4072" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_d66877" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_bd4072" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsNet_ad5122" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_d66877" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsNet_ad5122" 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="000048 - Disclosure - INTANGIBLE ASSETS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_9fb9c0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="loc_us-gaapAmortizationOfIntangibleAssets_567ef9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_9fb9c0" xlink:to="loc_us-gaapAmortizationOfIntangibleAssets_567ef9" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails" xlink:title="000049 - Disclosure - LEASES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_38788a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsAbstract" xlink:label="loc_us-gaapAssetsAbstract_746c0d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_38788a" xlink:to="loc_us-gaapAssetsAbstract_746c0d" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset_fefede" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract_746c0d" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset_fefede" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LiabilitiesAbstract" xlink:label="loc_us-gaapLiabilitiesAbstract_2babc3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAssetsAbstract_746c0d" xlink:to="loc_us-gaapLiabilitiesAbstract_2babc3" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_1eb723" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAbstract_2babc3" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_1eb723" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_78ae67" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAbstract_2babc3" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_78ae67" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaapOperatingLeaseLiability_bdf82a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLiabilitiesAbstract_2babc3" xlink:to="loc_us-gaapOperatingLeaseLiability_bdf82a" order="6" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails1" xlink:title="000050 - Disclosure - LEASES (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_ed83d8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseExpense" xlink:label="loc_us-gaapOperatingLeaseExpense_50538b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_ed83d8" xlink:to="loc_us-gaapOperatingLeaseExpense_50538b" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails2" xlink:title="000051 - Disclosure - LEASES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_586414" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" xlink:label="loc_tomzOperatingLeaseWeightedAveragesRemainingLeaseTerm_daa80e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_586414" xlink:to="loc_tomzOperatingLeaseWeightedAveragesRemainingLeaseTerm_daa80e" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseDiscountRate" xlink:label="loc_us-gaapLesseeOperatingLeaseDiscountRate_418144" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_586414" xlink:to="loc_us-gaapLesseeOperatingLeaseDiscountRate_418144" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails3" xlink:title="000052 - Disclosure - LEASES (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_66d37b" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm" xlink:label="loc_us-gaapOperatingLeaseInitialDirectCostExpenseOverTerm_324e57" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_66d37b" xlink:to="loc_us-gaapOperatingLeaseInitialDirectCostExpenseOverTerm_324e57" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails4" xlink:title="000053 - Disclosure - LEASES (Details 4)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_510fdb" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_b5c169" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_b5c169" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo_ce8bfb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo_ce8bfb" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree_add974" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree_add974" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour_51c315" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour_51c315" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive_c0fdbe" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive_c0fdbe" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_937d7e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_937d7e" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue_edb723" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue_edb723" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityUndiscountedExcessAmount_1dcf9b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityUndiscountedExcessAmount_1dcf9b" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaapOperatingLeaseLiability_3ec0e8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapOperatingLeaseLiability_3ec0e8" order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_9a3334" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_9a3334" order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_b5d746" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_510fdb" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_b5d746" 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="000054 - Disclosure - LEASES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_5bc346" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_TermLease" xlink:label="loc_tomzTermLease_3cc1e4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_5bc346" xlink:to="loc_tomzTermLease_3cc1e4" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AreaOfLand" xlink:label="loc_us-gaapAreaOfLand_c80756" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_5bc346" xlink:to="loc_us-gaapAreaOfLand_c80756" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLeasesRentExpenseNet" xlink:label="loc_us-gaapOperatingLeasesRentExpenseNet_78ba6d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_5bc346" xlink:to="loc_us-gaapOperatingLeasesRentExpenseNet_78ba6d" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_MaximumIncreasesRentPercentage" xlink:label="loc_tomzMaximumIncreasesRentPercentage_3bf82d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_5bc346" xlink:to="loc_tomzMaximumIncreasesRentPercentage_3bf82d" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WorkersCompensationDiscountPercent" xlink:label="loc_us-gaapWorkersCompensationDiscountPercent_749174" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_5bc346" xlink:to="loc_us-gaapWorkersCompensationDiscountPercent_749174" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentsForProceedsFromTenantAllowance" xlink:label="loc_us-gaapPaymentsForProceedsFromTenantAllowance_cf924f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_5bc346" xlink:to="loc_us-gaapPaymentsForProceedsFromTenantAllowance_cf924f" order="6" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:title="000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareNetAbstract" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_fa2283" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareGross" xlink:label="loc_us-gaapCapitalizedComputerSoftwareGross_f17744" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_fa2283" xlink:to="loc_us-gaapCapitalizedComputerSoftwareGross_f17744" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization" xlink:label="loc_us-gaapCapitalizedComputerSoftwareAccumulatedAmortization_1c6231" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_fa2283" xlink:to="loc_us-gaapCapitalizedComputerSoftwareAccumulatedAmortization_1c6231" order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareNet" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNet_256e25" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_fa2283" xlink:to="loc_us-gaapCapitalizedComputerSoftwareNet_256e25" order="3" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:title="000056 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareNetAbstract" xlink:label="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_212ae9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:label="loc_us-gaapCapitalizedComputerSoftwareAmortization1_17292c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCapitalizedComputerSoftwareNetAbstract_212ae9" xlink:to="loc_us-gaapCapitalizedComputerSoftwareAmortization1_17292c" order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:title="000057 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="loc_us-gaapCompensationAndRetirementDisclosureAbstract_a6b999" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ProceedsFromServiceContractOfReceivables" xlink:label="loc_tomzProceedsFromServiceContractOfReceivables_585947" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCompensationAndRetirementDisclosureAbstract_a6b999" xlink:to="loc_tomzProceedsFromServiceContractOfReceivables_585947" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_AnnualPaymentsOnContractTerm" xlink:label="loc_tomzAnnualPaymentsOnContractTerm_cbf33b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCompensationAndRetirementDisclosureAbstract_a6b999" xlink:to="loc_tomzAnnualPaymentsOnContractTerm_cbf33b" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaapPrepaidExpenseAndOtherAssets_d4c32f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCompensationAndRetirementDisclosureAbstract_a6b999" xlink:to="loc_us-gaapPrepaidExpenseAndOtherAssets_d4c32f" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CostOfGoodsAndServicesSoldAmortization" xlink:label="loc_us-gaapCostOfGoodsAndServicesSoldAmortization_28db13" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCompensationAndRetirementDisclosureAbstract_a6b999" xlink:to="loc_us-gaapCostOfGoodsAndServicesSoldAmortization_28db13" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails" xlink:title="000058 - Disclosure - SHAREHOLDERS EQUITY (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_34ec23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_b09a55" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_34ec23" xlink:to="loc_us-gaapStatementTable_b09a55" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_81c8c3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b09a55" xlink:to="loc_us-gaapStatementLineItems_81c8c3" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_1f6509" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b09a55" xlink:to="loc_us-gaapStatementClassOfStockAxis_1f6509" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_605ecc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_1f6509" xlink:to="loc_us-gaapClassOfStockDomain_605ecc" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantMember" xlink:label="loc_tomzStockWarrantMember_9a85f6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_605ecc" xlink:to="loc_tomzStockWarrantMember_9a85f6" order="11" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OutstandingBeginningOfPeriod" xlink:label="loc_tomzOutstandingBeginningOfPeriod_f825c5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_81c8c3" xlink:to="loc_tomzOutstandingBeginningOfPeriod_f825c5" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_bbcaa9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_81c8c3" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_bbcaa9" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_68fe7c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_81c8c3" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_68fe7c" order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_8f62a0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_81c8c3" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_8f62a0" order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OutstandingEndOfPeriod" xlink:label="loc_tomzOutstandingEndOfPeriod_6fe594" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_81c8c3" xlink:to="loc_tomzOutstandingEndOfPeriod_6fe594" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WeightedAverageExercisePriceAbstract" xlink:label="loc_tomzWeightedAverageExercisePriceAbstract_7e608b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_81c8c3" xlink:to="loc_tomzWeightedAverageExercisePriceAbstract_7e608b" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WeightedAverageExercisePriceOutstandingBeginningBalance" xlink:label="loc_tomzWeightedAverageExercisePriceOutstandingBeginningBalance_03e153" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzWeightedAverageExercisePriceAbstract_7e608b" xlink:to="loc_tomzWeightedAverageExercisePriceOutstandingBeginningBalance_03e153" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WeightedAverageExercisePriceGranted" xlink:label="loc_tomzWeightedAverageExercisePriceGranted_c6a019" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzWeightedAverageExercisePriceAbstract_7e608b" xlink:to="loc_tomzWeightedAverageExercisePriceGranted_c6a019" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WeightedAverageExercisePriceExercised" xlink:label="loc_tomzWeightedAverageExercisePriceExercised_242aa7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzWeightedAverageExercisePriceAbstract_7e608b" xlink:to="loc_tomzWeightedAverageExercisePriceExercised_242aa7" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WeightedAverageExercisePriceExpired" xlink:label="loc_tomzWeightedAverageExercisePriceExpired_0b68fa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzWeightedAverageExercisePriceAbstract_7e608b" xlink:to="loc_tomzWeightedAverageExercisePriceExpired_0b68fa" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WeightedAverageExercisePriceOutstandingEndingBalance" xlink:label="loc_tomzWeightedAverageExercisePriceOutstandingEndingBalance_83cff8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzWeightedAverageExercisePriceAbstract_7e608b" xlink:to="loc_tomzWeightedAverageExercisePriceOutstandingEndingBalance_83cff8" order="11" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails1" xlink:title="000059 - Disclosure - SHAREHOLDERS EQUITY (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_ba4327" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_f935b7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_ba4327" xlink:to="loc_us-gaapStatementTable_f935b7" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_4837c9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_f935b7" xlink:to="loc_us-gaapStatementLineItems_4837c9" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OptionIndexedToIssuersEquityEquityAxis" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis_1fe612" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_f935b7" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis_1fe612" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OptionIndexedToIssuersEquityTypeDomain" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_744aac" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis_1fe612" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_744aac" order="20" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RangeFourMember" xlink:label="loc_tomzRangeFourMember_b8a22d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_744aac" xlink:to="loc_tomzRangeFourMember_b8a22d" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RangeOneMember" xlink:label="loc_tomzRangeOneMember_c1d9a8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_744aac" xlink:to="loc_tomzRangeOneMember_c1d9a8" order="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RangeTwoMember" xlink:label="loc_tomzRangeTwoMember_8ca746" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_744aac" xlink:to="loc_tomzRangeTwoMember_8ca746" order="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RangeThreeMember" xlink:label="loc_tomzRangeThreeMember_6a8e16" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_744aac" xlink:to="loc_tomzRangeThreeMember_6a8e16" order="24" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RangeFiveMember" xlink:label="loc_tomzRangeFiveMember_ed9766" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_744aac" xlink:to="loc_tomzRangeFiveMember_ed9766" order="25" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RangeSixMember" xlink:label="loc_tomzRangeSixMember_b1fb92" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_744aac" xlink:to="loc_tomzRangeSixMember_b1fb92" order="26" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RangeSevenMember" xlink:label="loc_tomzRangeSevenMember_e98d34" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_744aac" xlink:to="loc_tomzRangeSevenMember_e98d34" order="27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_883f1d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_4837c9" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_883f1d" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_2c8b5e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_4837c9" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_2c8b5e" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_10bb14" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_4837c9" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_10bb14" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_f59c40" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_4837c9" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_f59c40" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails2" xlink:title="000060 - Disclosure - SHAREHOLDERS EQUITY (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_8b4d57" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_450768" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_8b4d57" xlink:to="loc_us-gaapStatementTable_450768" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_d2c9dc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_450768" xlink:to="loc_us-gaapStatementLineItems_d2c9dc" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis_fbf5bf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_450768" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis_fbf5bf" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_8e9e11" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis_fbf5bf" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_8e9e11" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember_45bbd2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain_8e9e11" xlink:to="loc_tomzWarrantsMember_45bbd2" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_a71dd4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d2c9dc" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_a71dd4" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_492334" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_a71dd4" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_492334" order="2" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_efc0f3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_a71dd4" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_efc0f3" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod" xlink:label="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_b9487b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_a71dd4" xlink:to="loc_tomzShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod_b9487b" order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_3f07ab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_a71dd4" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_3f07ab" order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_7f3b5e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_a71dd4" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_7f3b5e" order="6" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_5f9632" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract_a71dd4" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_5f9632" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4d5d52" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_5f9632" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4d5d52" order="8" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_8e87f7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_5f9632" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_8e87f7" order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_a23136" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_5f9632" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_a23136" order="10" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_d95543" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_5f9632" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_d95543" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_9291b3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePriceAbstract_5f9632" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_9291b3" 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="000061 - Disclosure - SHAREHOLDERS EQUITY (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_86da5e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_2abbf8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_86da5e" xlink:to="loc_us-gaapStatementTable_2abbf8" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_ce7af6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_2abbf8" xlink:to="loc_us-gaapStatementLineItems_ce7af6" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis_156291" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_2abbf8" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis_156291" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_f6218d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis_156291" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_f6218d" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis_92a515" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_2abbf8" xlink:to="loc_us-gaapAwardTypeAxis_92a515" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardTypeAxis_92a515" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" order="30" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember_96e212" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain_f6218d" xlink:to="loc_tomzWarrantsMember_96e212" order="31" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsOneMember" xlink:label="loc_tomzWarrantsOneMember_c70bf0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsOneMember_c70bf0" order="32" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsTwoMember" xlink:label="loc_tomzWarrantsTwoMember_4c0ab5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsTwoMember_4c0ab5" order="33" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsThreeMember" xlink:label="loc_tomzWarrantsThreeMember_27abfe" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsThreeMember_27abfe" order="34" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsFourMember" xlink:label="loc_tomzWarrantsFourMember_98de77" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsFourMember_98de77" order="35" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsFiveMember" xlink:label="loc_tomzWarrantsFiveMember_c5fb65" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsFiveMember_c5fb65" order="36" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsSixMember" xlink:label="loc_tomzWarrantsSixMember_09ad9c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsSixMember_09ad9c" order="37" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsSevenMember" xlink:label="loc_tomzWarrantsSevenMember_e18c0b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsSevenMember_e18c0b" order="38" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsEightMember" xlink:label="loc_tomzWarrantsEightMember_aaf43c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsEightMember_aaf43c" order="39" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsNineMember" xlink:label="loc_tomzWarrantsNineMember_c9f7ec" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsNineMember_c9f7ec" order="40" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsTenMember" xlink:label="loc_tomzWarrantsTenMember_a1296c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsTenMember_a1296c" order="41" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsElevenMember" xlink:label="loc_tomzWarrantsElevenMember_fe512b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsElevenMember_fe512b" order="42" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsTwelveMember" xlink:label="loc_tomzWarrantsTwelveMember_72a7d2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_89c1d7" xlink:to="loc_tomzWarrantsTwelveMember_72a7d2" order="43" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_0d56fd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ce7af6" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_0d56fd" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_437285" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ce7af6" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_437285" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_c421ba" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ce7af6" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_c421ba" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_809adb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ce7af6" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_809adb" 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="000062 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_cf69fa" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_353e1f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_cf69fa" xlink:to="loc_us-gaapStatementTable_353e1f" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_dfc4e0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_353e1f" xlink:to="loc_us-gaapStatementLineItems_dfc4e0" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_926d4c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_353e1f" xlink:to="loc_us-gaapStatementClassOfStockAxis_926d4c" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_88196e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_926d4c" xlink:to="loc_us-gaapClassOfStockDomain_88196e" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis_7bf239" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_353e1f" xlink:to="loc_srtTitleOfIndividualAxis_7bf239" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_3fec84" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualAxis_7bf239" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_3fec84" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardDateAxis" xlink:label="loc_us-gaapAwardDateAxis_89c85d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_353e1f" xlink:to="loc_us-gaapAwardDateAxis_89c85d" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AwardDateDomain" xlink:label="loc_us-gaapAwardDateDomain_c0e829" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateAxis_89c85d" xlink:to="loc_us-gaapAwardDateDomain_c0e829" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember_b22c7b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_88196e" xlink:to="loc_us-gaapSeriesAPreferredStockMember_b22c7b" order="51" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember_88c015" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_88196e" xlink:to="loc_us-gaapSeriesBPreferredStockMember_88c015" order="52" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantMember" xlink:label="loc_tomzStockWarrantMember_8ff184" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_88196e" xlink:to="loc_tomzStockWarrantMember_8ff184" order="53" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_PrivatePlacementsMember" xlink:label="loc_tomzPrivatePlacementsMember_03a069" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_3fec84" xlink:to="loc_tomzPrivatePlacementsMember_03a069" order="54" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_PlacementAgentMember" xlink:label="loc_tomzPlacementAgentMember_11a253" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_3fec84" xlink:to="loc_tomzPlacementAgentMember_11a253" order="55" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_MarchTwentyTwentyMember" xlink:label="loc_tomzMarchTwentyTwentyMember_2a3ee2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_c0e829" xlink:to="loc_tomzMarchTwentyTwentyMember_2a3ee2" order="56" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_JulyTwentyTwentyMember" xlink:label="loc_tomzJulyTwentyTwentyMember_8909b6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_c0e829" xlink:to="loc_tomzJulyTwentyTwentyMember_8909b6" order="57" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OctoberTwoThousandTwentyMember" xlink:label="loc_tomzOctoberTwoThousandTwentyMember_be464e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_c0e829" xlink:to="loc_tomzOctoberTwoThousandTwentyMember_be464e" order="58" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_JuneTwentyTwentyMember" xlink:label="loc_tomzJuneTwentyTwentyMember_aff038" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_c0e829" xlink:to="loc_tomzJuneTwentyTwentyMember_aff038" order="59" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_MayTwentyTwentyMember" xlink:label="loc_tomzMayTwentyTwentyMember_2f3412" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_c0e829" xlink:to="loc_tomzMayTwentyTwentyMember_2f3412" order="60" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_JanuaryTwentyTwentyOneMember" xlink:label="loc_tomzJanuaryTwentyTwentyOneMember_a513e0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_c0e829" xlink:to="loc_tomzJanuaryTwentyTwentyOneMember_a513e0" order="61" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ChiefOperatingOfficersMember" xlink:label="loc_tomzChiefOperatingOfficersMember_eb5886" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_3fec84" xlink:to="loc_tomzChiefOperatingOfficersMember_eb5886" order="62" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember_4f8541" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_88196e" xlink:to="loc_tomzStockOptionsMember_4f8541" order="63" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_AprilTwentyTwentyMember" xlink:label="loc_tomzAprilTwentyTwentyMember_ae8ac1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_c0e829" xlink:to="loc_tomzAprilTwentyTwentyMember_ae8ac1" order="64" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantOneMember" xlink:label="loc_tomzStockWarrantOneMember_2dc844" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_88196e" xlink:to="loc_tomzStockWarrantOneMember_2dc844" order="65" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantTwoMember" xlink:label="loc_tomzStockWarrantTwoMember_521182" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_88196e" xlink:to="loc_tomzStockWarrantTwoMember_521182" order="66" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantThreeMember" xlink:label="loc_tomzStockWarrantThreeMember_812ba1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_88196e" xlink:to="loc_tomzStockWarrantThreeMember_812ba1" order="67" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OctoberwentyTwentyMember" xlink:label="loc_tomzOctoberwentyTwentyMember_63eac8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_c0e829" xlink:to="loc_tomzOctoberwentyTwentyMember_63eac8" order="68" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityReverseStockSplit" xlink:label="loc_us-gaapStockholdersEquityReverseStockSplit_200966" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapStockholdersEquityReverseStockSplit_200966" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockShareSold" xlink:label="loc_tomzCommonStockShareSold_07f0f8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzCommonStockShareSold_07f0f8" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_IssuedWarrantsInConcurrentPrivatePlacement" xlink:label="loc_tomzIssuedWarrantsInConcurrentPrivatePlacement_6dbe3a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzIssuedWarrantsInConcurrentPrivatePlacement_6dbe3a" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_IssuedWarrantsInConcurrentPlacementAgent" xlink:label="loc_tomzIssuedWarrantsInConcurrentPlacementAgent_c72daa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzIssuedWarrantsInConcurrentPlacementAgent_c72daa" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ExercisePrice" xlink:label="loc_tomzExercisePrice_cb4b74" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzExercisePrice_cb4b74" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_GrantFairValueOfPerShare" xlink:label="loc_tomzGrantFairValueOfPerShare_af8682" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzGrantFairValueOfPerShare_af8682" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProceedsFromIssuanceOfWarrants" xlink:label="loc_us-gaapProceedsFromIssuanceOfWarrants_e7ca88" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapProceedsFromIssuanceOfWarrants_e7ca88" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ExercisePriceOfWarrant" xlink:label="loc_tomzExercisePriceOfWarrant_32bb99" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzExercisePriceOfWarrant_32bb99" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantAmendmentDescription" xlink:label="loc_tomzWarrantAmendmentDescription_d06f04" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzWarrantAmendmentDescription_d06f04" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_d46ad6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_d46ad6" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_AggregateCashConsideration" xlink:label="loc_tomzAggregateCashConsideration_86fc79" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzAggregateCashConsideration_86fc79" order="11" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesFullyVestedAmount" xlink:label="loc_tomzCommonStockSharesFullyVestedAmount_f978b1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzCommonStockSharesFullyVestedAmount_f978b1" order="12" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" xlink:label="loc_tomzWarrantsIssuedUponPurchaseShareOfCommonStock_eb59e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzWarrantsIssuedUponPurchaseShareOfCommonStock_eb59e2" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized_6772f5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapPreferredStockSharesAuthorized_6772f5" order="14" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued_42c538" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapPreferredStockSharesIssued_42c538" order="15" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding_7f22e0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapPreferredStockSharesOutstanding_7f22e0" order="16" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare_fe840b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare_fe840b" order="17" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WarrantsAndRightsOutstanding" xlink:label="loc_us-gaapWarrantsAndRightsOutstanding_cade69" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapWarrantsAndRightsOutstanding_cade69" order="18" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_Preferredstockparorstatedvaluepershare" xlink:label="loc_tomzPreferredstockparorstatedvaluepershare_61d2af" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzPreferredstockparorstatedvaluepershare_61d2af" order="19" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares" xlink:label="loc_tomzCommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares_b4306d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzCommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares_b4306d" order="20" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount" xlink:label="loc_tomzCommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount_be361d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzCommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount_be361d" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConversionOfStockSharesConverted1" xlink:label="loc_us-gaapConversionOfStockSharesConverted1_823469" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapConversionOfStockSharesConverted1_823469" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConversionOfStockAmountConverted1" xlink:label="loc_us-gaapConversionOfStockAmountConverted1_65b02c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapConversionOfStockAmountConverted1_65b02c" order="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponExerciseOfOptionShares" xlink:label="loc_tomzCommonStockSharesIssuedUponExerciseOfOptionShares_ded5d9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzCommonStockSharesIssuedUponExerciseOfOptionShares_ded5d9" order="24" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount" xlink:label="loc_tomzCommonStockSharesIssuedUponExerciseOfOptionAmount_8c610e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzCommonStockSharesIssuedUponExerciseOfOptionAmount_8c610e" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_f8d1bc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_f8d1bc" order="26" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue_b83d0c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapCommonStockValue_b83d0c" order="27" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_6ec254" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_6ec254" order="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_dfd1aa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_dfd1aa" order="29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_20748e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_20748e" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_996b01" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_996b01" order="31" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_FairValueOfStockOption" xlink:label="loc_tomzFairValueOfStockOption_5df5bf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzFairValueOfStockOption_5df5bf" order="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_c740f0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_c740f0" order="33" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_2b845c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_2b845c" order="34" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_FairValueOfStockWarrant" xlink:label="loc_tomzFairValueOfStockWarrant_ad788b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_dfc4e0" xlink:to="loc_tomzFairValueOfStockWarrant_ad788b" order="35" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative" xlink:title="000063 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract_d58c57" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProductLiabilityContingencyAccrualPresentValue" xlink:label="loc_us-gaapProductLiabilityContingencyAccrualPresentValue_5d7f75" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract_d58c57" xlink:to="loc_us-gaapProductLiabilityContingencyAccrualPresentValue_5d7f75" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:title="000064 - Disclosure - CONTRACTS AND AGREEMENTS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="loc_us-gaapFairValueDisclosuresAbstract_3977fc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractualObligationDueInNextTwelveMonths" xlink:label="loc_us-gaapContractualObligationDueInNextTwelveMonths_19413f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract_3977fc" xlink:to="loc_us-gaapContractualObligationDueInNextTwelveMonths_19413f" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractualObligationDueInSecondYear" xlink:label="loc_us-gaapContractualObligationDueInSecondYear_ab570e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract_3977fc" xlink:to="loc_us-gaapContractualObligationDueInSecondYear_ab570e" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractualObligationDueInThirdYear" xlink:label="loc_us-gaapContractualObligationDueInThirdYear_d979c8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract_3977fc" xlink:to="loc_us-gaapContractualObligationDueInThirdYear_d979c8" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractualObligationDueInFourthYear" xlink:label="loc_us-gaapContractualObligationDueInFourthYear_b1f793" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract_3977fc" xlink:to="loc_us-gaapContractualObligationDueInFourthYear_b1f793" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ContractualObligation" xlink:label="loc_us-gaapContractualObligation_3224ee" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFairValueDisclosuresAbstract_3977fc" xlink:to="loc_us-gaapContractualObligation_3224ee" order="5" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:title="000065 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:label="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_866a99" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_79116b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_866a99" xlink:to="loc_us-gaapStatementTable_79116b" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_d0b016" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_79116b" xlink:to="loc_us-gaapStatementLineItems_d0b016" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis_152471" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_79116b" xlink:to="loc_us-gaapPlanNameAxis_152471" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_83132f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameAxis_152471" xlink:to="loc_us-gaapPlanNameDomain_83132f" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis_735581" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_79116b" xlink:to="loc_srtTitleOfIndividualAxis_735581" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_505dd7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualAxis_735581" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_505dd7" order="20" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ExecutiveAgreementsWithElissaJShaneMember" xlink:label="loc_tomzExecutiveAgreementsWithElissaJShaneMember_6b0507" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_83132f" xlink:to="loc_tomzExecutiveAgreementsWithElissaJShaneMember_6b0507" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_BoardOfMembersMember" xlink:label="loc_tomzBoardOfMembersMember_6ecb03" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_505dd7" xlink:to="loc_tomzBoardOfMembersMember_6ecb03" order="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommitteeChairpersonMember" xlink:label="loc_tomzCommitteeChairpersonMember_3056ba" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_505dd7" xlink:to="loc_tomzCommitteeChairpersonMember_3056ba" order="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ExecutiveAgreementsWithHaldenSShaneMember" xlink:label="loc_tomzExecutiveAgreementsWithHaldenSShaneMember_64eba1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_83132f" xlink:to="loc_tomzExecutiveAgreementsWithHaldenSShaneMember_64eba1" order="24" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_TwoThousandSixteenEquityPlanMember" xlink:label="loc_tomzTwoThousandSixteenEquityPlanMember_bbfa5a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_83132f" xlink:to="loc_tomzTwoThousandSixteenEquityPlanMember_bbfa5a" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:label="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles_a53877" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles_a53877" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_TermOfAgreement" xlink:label="loc_tomzTermOfAgreement_720bdb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_tomzTermOfAgreement_720bdb" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SalariesAndWages" xlink:label="loc_us-gaapSalariesAndWages_596758" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_us-gaapSalariesAndWages_596758" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfWarrantOrRightOutstanding" xlink:label="loc_us-gaapClassOfWarrantOrRightOutstanding_41f09e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_us-gaapClassOfWarrantOrRightOutstanding_41f09e" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight" xlink:label="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight_c57840" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight_c57840" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights" xlink:label="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_724941" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_us-gaapClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights_724941" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PaymentForManagementFee" xlink:label="loc_us-gaapPaymentForManagementFee_0241da" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_us-gaapPaymentForManagementFee_0241da" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_0b512a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_0b512a" order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueIssuedForServices_7b8dbc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueIssuedForServices_7b8dbc" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_IssuanceOfOptionToPurchaseSharesOfCommonStock" xlink:label="loc_tomzIssuanceOfOptionToPurchaseSharesOfCommonStock_1357ec" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_tomzIssuanceOfOptionToPurchaseSharesOfCommonStock_1357ec" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile" xlink:label="loc_tomzReimburseOfExpensesAssociatedWithUseOfAutomobile_7b6234" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_tomzReimburseOfExpensesAssociatedWithUseOfAutomobile_7b6234" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesOther" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesOther_071574" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesOther_071574" order="12" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SaleOfStockPricePerShare" xlink:label="loc_us-gaapSaleOfStockPricePerShare_60a5cd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_us-gaapSaleOfStockPricePerShare_60a5cd" order="13" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsCancelled" xlink:label="loc_tomzWarrantsCancelled_a7ac16" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_d0b016" xlink:to="loc_tomzWarrantsCancelled_a7ac16" order="14" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="000066 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_20ac9a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent" xlink:label="loc_us-gaapEmployeeRelatedLiabilitiesCurrentAndNoncurrent_e06c81" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_20ac9a" xlink:to="loc_us-gaapEmployeeRelatedLiabilitiesCurrentAndNoncurrent_e06c81" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent" xlink:label="loc_us-gaapAccruedPayrollTaxesCurrentAndNoncurrent_54c2c6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_20ac9a" xlink:to="loc_us-gaapAccruedPayrollTaxesCurrentAndNoncurrent_54c2c6" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DirectorFeesCurrentAndNoncurrent" xlink:label="loc_tomzDirectorFeesCurrentAndNoncurrent_bf5406" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_20ac9a" xlink:to="loc_tomzDirectorFeesCurrentAndNoncurrent_bf5406" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_SalesTaxPayable" xlink:label="loc_tomzSalesTaxPayable_30892c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_20ac9a" xlink:to="loc_tomzSalesTaxPayable_30892c" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedIncomeTaxes" xlink:label="loc_us-gaapAccruedIncomeTaxes_f79f65" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_20ac9a" xlink:to="loc_us-gaapAccruedIncomeTaxes_f79f65" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:label="loc_us-gaapExtendedProductWarrantyAccrualCurrent_10e060" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_20ac9a" xlink:to="loc_us-gaapExtendedProductWarrantyAccrualCurrent_10e060" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:label="loc_us-gaapOtherAccruedLiabilitiesCurrentAndNoncurrent_8cb4ca" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_20ac9a" xlink:to="loc_us-gaapOtherAccruedLiabilitiesCurrentAndNoncurrent_8cb4ca" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_8512a2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_20ac9a" xlink:to="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_8512a2" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyDetails" xlink:title="000067 - Disclosure - ACCRUED WARRANTY (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="loc_us-gaapDebtDisclosureAbstract_f9ac89" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="loc_us-gaapExtendedProductWarrantyAccrual_35e992" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_f9ac89" xlink:to="loc_us-gaapExtendedProductWarrantyAccrual_35e992" order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease" xlink:label="loc_us-gaapProductWarrantyAccrualPeriodIncreaseDecrease_ce6fb5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_f9ac89" xlink:to="loc_us-gaapProductWarrantyAccrualPeriodIncreaseDecrease_ce6fb5" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_SettlementOfWarrantyClaims" xlink:label="loc_tomzSettlementOfWarrantyClaims_b4a2ff" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_f9ac89" xlink:to="loc_tomzSettlementOfWarrantyClaims_b4a2ff" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="loc_us-gaapExtendedProductWarrantyAccrual_b32abd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_f9ac89" xlink:to="loc_us-gaapExtendedProductWarrantyAccrual_b32abd" order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LoanPayableDetailsNarrative" xlink:title="000068 - Disclosure - LOAN PAYABLE (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LoansPayableAbstract" xlink:label="loc_us-gaapLoansPayableAbstract_b60c69" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ProceedsFromLoanFundingPaycheckProtectionProgram" xlink:label="loc_tomzProceedsFromLoanFundingPaycheckProtectionProgram_675335" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLoansPayableAbstract_b60c69" xlink:to="loc_tomzProceedsFromLoanFundingPaycheckProtectionProgram_675335" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_GainsLossOnExtinguishmentOfDebt" xlink:label="loc_tomzGainsLossOnExtinguishmentOfDebt_a0b734" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLoansPayableAbstract_b60c69" xlink:to="loc_tomzGainsLossOnExtinguishmentOfDebt_a0b734" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="loc_us-gaapDebtInstrumentInterestRateStatedPercentage_a34b7b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLoansPayableAbstract_b60c69" xlink:to="loc_us-gaapDebtInstrumentInterestRateStatedPercentage_a34b7b" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_UnsecuredLoanPrincipalAmountOfCityNationalBank" xlink:label="loc_tomzUnsecuredLoanPrincipalAmountOfCityNationalBank_c3c08e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLoansPayableAbstract_b60c69" xlink:to="loc_tomzUnsecuredLoanPrincipalAmountOfCityNationalBank_c3c08e" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails" xlink:title="000069 - Disclosure - INCOME TAXES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_f49954" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_77982e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_f49954" xlink:to="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_77982e" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentFederalTaxExpenseBenefit_a7e8ad" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_77982e" xlink:to="loc_us-gaapCurrentFederalTaxExpenseBenefit_a7e8ad" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentStateAndLocalTaxExpenseBenefit_ca7e8a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_77982e" xlink:to="loc_us-gaapCurrentStateAndLocalTaxExpenseBenefit_ca7e8a" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentForeignTaxExpenseBenefit_5d0cc0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_77982e" xlink:to="loc_us-gaapCurrentForeignTaxExpenseBenefit_5d0cc0" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapCurrentIncomeTaxExpenseBenefit_5c8781" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_77982e" xlink:to="loc_us-gaapCurrentIncomeTaxExpenseBenefit_5c8781" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_925ad6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_77982e" xlink:to="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_925ad6" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredFederalIncomeTaxExpenseBenefit_7cae6d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_925ad6" xlink:to="loc_us-gaapDeferredFederalIncomeTaxExpenseBenefit_7cae6d" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredStateAndLocalIncomeTaxExpenseBenefit_02e049" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_925ad6" xlink:to="loc_us-gaapDeferredStateAndLocalIncomeTaxExpenseBenefit_02e049" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredForeignIncomeTaxExpenseBenefit_3e3f6c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_925ad6" xlink:to="loc_us-gaapDeferredForeignIncomeTaxExpenseBenefit_3e3f6c" order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="loc_us-gaapDeferredIncomeTaxExpenseBenefit_271c42" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_925ad6" xlink:to="loc_us-gaapDeferredIncomeTaxExpenseBenefit_271c42" order="10" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ProvisionForIncomeTaxes" xlink:label="loc_tomzProvisionForIncomeTaxes_1860be" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_925ad6" xlink:to="loc_tomzProvisionForIncomeTaxes_1860be" order="11" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails1" xlink:title="000070 - Disclosure - INCOME TAXES (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_8cd4d4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_2f905f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_8cd4d4" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_2f905f" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_a57788" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_8cd4d4" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_a57788" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_f18418" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_8cd4d4" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments_f18418" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails2" xlink:title="000071 - Disclosure - INCOME TAXES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_842f08" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_IncomeLossBeforeIncomeTax" xlink:label="loc_tomzIncomeLossBeforeIncomeTax_4ca673" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_842f08" xlink:to="loc_tomzIncomeLossBeforeIncomeTax_4ca673" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaapEffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_75ba4b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_842f08" xlink:to="loc_us-gaapEffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_75ba4b" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="loc_us-gaapIncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_321051" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_842f08" xlink:to="loc_us-gaapIncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_321051" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract" xlink:label="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_59b4ee" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_842f08" xlink:to="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_59b4ee" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaapIncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_7d1f90" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_59b4ee" xlink:to="loc_us-gaapIncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance_7d1f90" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes" xlink:label="loc_us-gaapIncomeTaxReconciliationPriorYearIncomeTaxes_9f9831" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_59b4ee" xlink:to="loc_us-gaapIncomeTaxReconciliationPriorYearIncomeTaxes_9f9831" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="loc_us-gaapIncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_d8a61f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_59b4ee" xlink:to="loc_us-gaapIncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost_d8a61f" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization" xlink:label="loc_us-gaapIncomeTaxReconciliationNondeductibleExpenseAmortization_76ce1c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_59b4ee" xlink:to="loc_us-gaapIncomeTaxReconciliationNondeductibleExpenseAmortization_76ce1c" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="loc_us-gaapIncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment_657e42" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_59b4ee" xlink:to="loc_us-gaapIncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment_657e42" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherReconcilingItems" xlink:label="loc_us-gaapIncomeTaxReconciliationOtherReconcilingItems_f1ba76" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_59b4ee" xlink:to="loc_us-gaapIncomeTaxReconciliationOtherReconcilingItems_f1ba76" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit_cf2c7d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract_59b4ee" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit_cf2c7d" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails3" xlink:title="000072 - Disclosure - INCOME TAXES (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_a8fed8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAbstract" xlink:label="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_a8fed8" xlink:to="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts" xlink:label="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_8d7dfc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" xlink:to="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts_8d7dfc" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DeferredTaxAssetsAccruedVacation" xlink:label="loc_tomzDeferredTaxAssetsAccruedVacation_5c1c8e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" xlink:to="loc_tomzDeferredTaxAssetsAccruedVacation_5c1c8e" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve" xlink:label="loc_tomzDeferredTaxAssetsTaxDeferredExpenseWarrantyReserve_e7db9f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" xlink:to="loc_tomzDeferredTaxAssetsTaxDeferredExpenseWarrantyReserve_e7db9f" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="loc_us-gaapDeferredTaxAssetsGoodwillAndIntangibleAssets_2b3a2e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" xlink:to="loc_us-gaapDeferredTaxAssetsGoodwillAndIntangibleAssets_2b3a2e" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities" xlink:label="loc_tomzDeferredTaxAssetOperatingLeaseRightofuseLiabilities_bf91e1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" xlink:to="loc_tomzDeferredTaxAssetOperatingLeaseRightofuseLiabilities_bf91e1" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="loc_us-gaapDeferredTaxAssetsOperatingLossCarryforwards_a0a888" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" xlink:to="loc_us-gaapDeferredTaxAssetsOperatingLossCarryforwards_a0a888" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaapDeferredTaxAssetsValuationAllowance_f227f0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" xlink:to="loc_us-gaapDeferredTaxAssetsValuationAllowance_f227f0" order="8" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="loc_us-gaapDeferredTaxAssetsNet_ff1434" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" xlink:to="loc_us-gaapDeferredTaxAssetsNet_ff1434" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ComponentsOfDeferredTaxLiabilitiesAbstract" xlink:label="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_fb22d7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxAssetsAbstract_58e49d" xlink:to="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_fb22d7" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets" xlink:label="loc_tomzDeferredTaxLiabilityOperatingLeaseRightofuseAssets_b49d4b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_fb22d7" xlink:to="loc_tomzDeferredTaxLiabilityOperatingLeaseRightofuseAssets_b49d4b" order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="loc_us-gaapDeferredTaxLiabilitiesPropertyPlantAndEquipment_f7deae" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_fb22d7" xlink:to="loc_us-gaapDeferredTaxLiabilitiesPropertyPlantAndEquipment_f7deae" order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="loc_us-gaapDeferredTaxLiabilities_cc829b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_fb22d7" xlink:to="loc_us-gaapDeferredTaxLiabilities_cc829b" order="13" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="loc_us-gaapDeferredTaxAssetsLiabilitiesNet_858ef6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapComponentsOfDeferredTaxLiabilitiesAbstract_fb22d7" xlink:to="loc_us-gaapDeferredTaxAssetsLiabilitiesNet_858ef6" order="14" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:title="000073 - Disclosure - INCOME TAXES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_dd71ec" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="loc_us-gaapOperatingLossCarryforwards_51c492" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_dd71ec" xlink:to="loc_us-gaapOperatingLossCarryforwards_51c492" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StateNetOperatingLossCarryforwards" xlink:label="loc_tomzStateNetOperatingLossCarryforwards_271d3d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_dd71ec" xlink:to="loc_tomzStateNetOperatingLossCarryforwards_271d3d" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_NetDeferredTaxAssetsIncreasedValuationAllowance" xlink:label="loc_tomzNetDeferredTaxAssetsIncreasedValuationAllowance_2066d2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_dd71ec" xlink:to="loc_tomzNetDeferredTaxAssetsIncreasedValuationAllowance_2066d2" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_NetDeferredTaxAssetsValuationAllowance" xlink:label="loc_tomzNetDeferredTaxAssetsValuationAllowance_f5ded3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_dd71ec" xlink:to="loc_tomzNetDeferredTaxAssetsValuationAllowance_f5ded3" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:title="000074 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_e1bf7b" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_500d7a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_e1bf7b" xlink:to="loc_us-gaapStatementTable_500d7a" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_5065ec" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_500d7a" xlink:to="loc_us-gaapStatementLineItems_5065ec" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis_6a4a6c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_500d7a" xlink:to="loc_srtMajorCustomersAxis_6a4a6c" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_2d6cce" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtMajorCustomersAxis_6a4a6c" xlink:to="loc_srtNameOfMajorCustomerDomain_2d6cce" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OneCustomerMember" xlink:label="loc_tomzOneCustomerMember_325544" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_2d6cce" xlink:to="loc_tomzOneCustomerMember_325544" order="11" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ThreeCustomersMember" xlink:label="loc_tomzThreeCustomersMember_c0f835" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_2d6cce" xlink:to="loc_tomzThreeCustomersMember_c0f835" order="12" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_TwoCustomerMember" xlink:label="loc_tomzTwoCustomerMember_77fec2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_2d6cce" xlink:to="loc_tomzTwoCustomerMember_77fec2" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="loc_us-gaapConcentrationRiskPercentage1_0f6965" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_5065ec" xlink:to="loc_us-gaapConcentrationRiskPercentage1_0f6965" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:title="000075 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaapSubsequentEventsAbstract_fe8f41" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_f9b67d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventsAbstract_fe8f41" xlink:to="loc_us-gaapStatementTable_f9b67d" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_b3cfb5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_f9b67d" xlink:to="loc_us-gaapStatementLineItems_b3cfb5" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="loc_us-gaapSubsequentEventTypeAxis_1fea09" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_f9b67d" xlink:to="loc_us-gaapSubsequentEventTypeAxis_1fea09" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaapSubsequentEventTypeDomain_4e17c1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventTypeAxis_1fea09" xlink:to="loc_us-gaapSubsequentEventTypeDomain_4e17c1" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_68549a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_f9b67d" xlink:to="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_68549a" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="loc_us-gaapRelatedPartyDomain_96ffcf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyTransactionsByRelatedPartyAxis_68549a" xlink:to="loc_us-gaapRelatedPartyDomain_96ffcf" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="loc_us-gaapSubsequentEventMember_5ca521" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventTypeDomain_4e17c1" xlink:to="loc_us-gaapSubsequentEventMember_5ca521" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ChiefExecutiveOfficerMember" xlink:label="loc_srtChiefExecutiveOfficerMember_d9c62b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyDomain_96ffcf" xlink:to="loc_srtChiefExecutiveOfficerMember_d9c62b" order="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ChiefOperatingOfficerMember" xlink:label="loc_srtChiefOperatingOfficerMember_a907b2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyDomain_96ffcf" xlink:to="loc_srtChiefOperatingOfficerMember_a907b2" order="33" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_ChiefFinancialOfficerMember" xlink:label="loc_srtChiefFinancialOfficerMember_53aee2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyDomain_96ffcf" xlink:to="loc_srtChiefFinancialOfficerMember_53aee2" order="34" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.xsd#srt_BoardOfDirectorsChairmanMember" xlink:label="loc_srtBoardOfDirectorsChairmanMember_fe758f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyDomain_96ffcf" xlink:to="loc_srtBoardOfDirectorsChairmanMember_fe758f" order="35" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1" xlink:label="loc_us-gaapClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_6f41b8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3cfb5" xlink:to="loc_us-gaapClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1_6f41b8" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="loc_us-gaapStockRepurchasedDuringPeriodShares_950f5c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3cfb5" xlink:to="loc_us-gaapStockRepurchasedDuringPeriodShares_950f5c" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockOptionValued" xlink:label="loc_tomzStockOptionValued_446425" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3cfb5" xlink:to="loc_tomzStockOptionValued_446425" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockOptionTerm" xlink:label="loc_tomzStockOptionTerm_a85b6a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3cfb5" xlink:to="loc_tomzStockOptionTerm_a85b6a" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_Volatility" xlink:label="loc_tomzVolatility_dd5371" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3cfb5" xlink:to="loc_tomzVolatility_dd5371" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ExpectedDividendYield" xlink:label="loc_tomzExpectedDividendYield_edaa35" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3cfb5" xlink:to="loc_tomzExpectedDividendYield_edaa35" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RiskFreeInterestRate" xlink:label="loc_tomzRiskFreeInterestRate_110fb5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3cfb5" xlink:to="loc_tomzRiskFreeInterestRate_110fb5" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_GrantDateFairValuePerShareOfCommonStock" xlink:label="loc_tomzGrantDateFairValuePerShareOfCommonStock_fdff89" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3cfb5" xlink:to="loc_tomzGrantDateFairValuePerShareOfCommonStock_fdff89" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConversionOfStockSharesIssued1" xlink:label="loc_us-gaapConversionOfStockSharesIssued1_b0a308" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3cfb5" xlink:to="loc_us-gaapConversionOfStockSharesIssued1_b0a308" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConversionOfStockAmountIssued1" xlink:label="loc_us-gaapConversionOfStockAmountIssued1_0087a9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b3cfb5" xlink:to="loc_us-gaapConversionOfStockAmountIssued1_0087a9" order="10" />
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>11
<FILENAME>tomz-20211231_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/29/2022-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2022 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-20211231.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tomz-20211231.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:href="tomz-20211231.xsd#CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfOperations" xlink:href="tomz-20211231.xsd#CondensedConsolidatedStatementsOfOperations" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity" xlink:href="tomz-20211231.xsd#CondensedConsolidatedStatementsOfStockholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows" xlink:href="tomz-20211231.xsd#CondensedConsolidatedStatementsOfCashFlows" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/DescriptionOfBusiness" xlink:href="tomz-20211231.xsd#DescriptionOfBusiness" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/INVENTORIES" xlink:href="tomz-20211231.xsd#INVENTORIES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDeposits" xlink:href="tomz-20211231.xsd#VendorDeposits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipment" xlink:href="tomz-20211231.xsd#PropertyAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssets" xlink:href="tomz-20211231.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LEASES" xlink:href="tomz-20211231.xsd#LEASES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCosts" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContract" xlink:href="tomz-20211231.xsd#CloudComputingServiceContract" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquity" xlink:href="tomz-20211231.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingencies" xlink:href="tomz-20211231.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreements" xlink:href="tomz-20211231.xsd#ContractsAndAgreements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:href="tomz-20211231.xsd#AccruedExpensesAndOtherCurrentLiabilities" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarranty" xlink:href="tomz-20211231.xsd#AccruedWarranty" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LoanPayable" xlink:href="tomz-20211231.xsd#LoanPayable" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxes" xlink:href="tomz-20211231.xsd#IncomeTaxes" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentration" xlink:href="tomz-20211231.xsd#CustomerConcentration" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEvents" xlink:href="tomz-20211231.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesTables" xlink:href="tomz-20211231.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentTables" xlink:href="tomz-20211231.xsd#PropertyAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsTables" xlink:href="tomz-20211231.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesTables" xlink:href="tomz-20211231.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCostsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/HareholdersEquityTables" xlink:href="tomz-20211231.xsd#HareholdersEquityTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsTables" xlink:href="tomz-20211231.xsd#ContractsAndAgreementsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:href="tomz-20211231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyTables" xlink:href="tomz-20211231.xsd#AccruedWarrantyTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesTables" xlink:href="tomz-20211231.xsd#IncomeTaxesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="tomz-20211231.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesDetails" xlink:href="tomz-20211231.xsd#InventoriesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:href="tomz-20211231.xsd#VendorDepositsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:href="tomz-20211231.xsd#PropertyAndEquipmentDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:href="tomz-20211231.xsd#PropertyAndEquipmentDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails1" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails2" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:href="tomz-20211231.xsd#IntangibleAssetsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails" xlink:href="tomz-20211231.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails1" xlink:href="tomz-20211231.xsd#LeasesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails2" xlink:href="tomz-20211231.xsd#LeasesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails3" xlink:href="tomz-20211231.xsd#LeasesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails4" xlink:href="tomz-20211231.xsd#LeasesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetailsNarrative" xlink:href="tomz-20211231.xsd#LeasesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCostsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:href="tomz-20211231.xsd#CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:href="tomz-20211231.xsd#CloudComputingServiceContractDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails1" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails2" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails3" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:href="tomz-20211231.xsd#ShareholdersEquityDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative" xlink:href="tomz-20211231.xsd#CommitmentsAndContingenciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:href="tomz-20211231.xsd#ContractsAndAgreementsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:href="tomz-20211231.xsd#ContractsAndAgreementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="tomz-20211231.xsd#AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyDetails" xlink:href="tomz-20211231.xsd#AccruedWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LoanPayableDetailsNarrative" xlink:href="tomz-20211231.xsd#LoanPayableDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails1" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails2" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetails3" xlink:href="tomz-20211231.xsd#IncomeTaxesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:href="tomz-20211231.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:href="tomz-20211231.xsd#CustomerConcentrationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:href="tomz-20211231.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/2021q4/dei-2021q4.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsAbstract" xlink:label="loc_us-gaapAssetsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAssetsAbstract" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="loc_us-gaapAssetsCurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAssetsCurrentAbstract" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_OtherAssetsCurrent" xlink:label="loc_us-gaapOtherAssetsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherAssetsCurrent" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_LongTermLoansPayable" xlink:label="loc_us-gaapLongTermLoansPayable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLongTermLoansPayable" order="26" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="33" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="34" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="35" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="36" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="9" />
  </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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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-20211231.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-20211231.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="tomz-20211231.xsd#tomz_ConversionOfNotesPayableIntoCommonStockShares" xlink:label="loc_tomzConversionOfNotesPayableIntoCommonStockShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzConversionOfNotesPayableIntoCommonStockShares" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ConversionOfNotesPayableIntoCommonStockAmount" xlink:label="loc_tomzConversionOfNotesPayableIntoCommonStockAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzConversionOfNotesPayableIntoCommonStockAmount" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ReverseStockSplitAdjustmentShares" xlink:label="loc_tomzReverseStockSplitAdjustmentShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzReverseStockSplitAdjustmentShares" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ReverseStockSplitAdjustmentAmount" xlink:label="loc_tomzReverseStockSplitAdjustmentAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzReverseStockSplitAdjustmentAmount" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="14" />
  </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/LoanPayable" xlink:title="000021 - Disclosure - LOAN PAYABLE" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxes" xlink:title="000022 - Disclosure - INCOME TAXES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentration" xlink:title="000023 - Disclosure - CUSTOMER CONCENTRATION" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEvents" xlink:title="000024 - Disclosure - SUBSEQUENT EVENTS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:title="000026 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesTables" xlink:title="000027 - Disclosure - INVENTORIES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentTables" xlink:title="000028 - Disclosure - PROPERTY AND EQUIPMENT (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsTables" xlink:title="000029 - Disclosure - INTANGIBLE ASSETS (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesTables" xlink:title="000030 - Disclosure - LEASES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsTables" xlink:title="000031 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/HareholdersEquityTables" xlink:title="000032 - Disclosure - HAREHOLDERS' EQUITY (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsTables" xlink:title="000033 - Disclosure - CONTRACTS AND AGREEMENTS (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:title="000034 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyTables" xlink:title="000035 - Disclosure - ACCRUED WARRANTY (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesTables" xlink:title="000036 - Disclosure - INCOME TAXES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:title="000037 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:title="000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_DilutedNetIncomeorLossMember" xlink:label="loc_tomzDilutedNetIncomeorLossMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapIncomeStatementLocationDomain" xlink:to="loc_tomzDilutedNetIncomeorLossMember" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants" xlink:label="loc_us-gaapIncrementalCommonSharesAttributableToCallOptionsAndWarrants" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapIncrementalCommonSharesAttributableToCallOptionsAndWarrants" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities" xlink:label="loc_us-gaapIncrementalCommonSharesAttributableToConversionOfDebtSecurities" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapIncrementalCommonSharesAttributableToConversionOfDebtSecurities" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="loc_us-gaapIncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapIncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements" xlink:label="loc_us-gaapIncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapIncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaapEarningsPerShareBasic" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapEarningsPerShareBasic" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapEarningsPerShareDiluted" order="9" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:title="000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="loc_us-gaapIncomeTaxAuthorityAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapIncomeTaxAuthorityAxis" order="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="loc_us-gaapIncomeTaxAuthorityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapIncomeTaxAuthorityAxis" xlink:to="loc_us-gaapIncomeTaxAuthorityDomain" order="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="loc_us-gaapIncomeTaxAuthorityDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapIncomeTaxAuthorityAxis" xlink:to="loc_us-gaapIncomeTaxAuthorityDomain_10" order="60" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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-20211231.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="loc_us-gaapDomesticCountryMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapIncomeTaxAuthorityDomain" xlink:to="loc_us-gaapDomesticCountryMember" order="43" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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-gaapIncomeTaxAuthorityDomain" xlink:to="loc_tomzInternationalMember" order="44" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ProductAndServiceRevenueMember" xlink:label="loc_tomzProductAndServiceRevenueMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tomzProductAndServiceRevenueMember" order="45" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_RevenueByGeographicRegionMember" xlink:label="loc_tomzRevenueByGeographicRegionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tomzRevenueByGeographicRegionMember" order="46" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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-20211231.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="000040 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="60" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="60" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="70" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="70" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="80" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="90" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="80" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="90" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="100" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="110" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="120" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="120" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="130" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="140" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="121" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="122" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="123" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="124" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="125" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="126" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="127" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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="128" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:label="loc_us-gaapCapitalizedComputerSoftwareAmortization1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCapitalizedComputerSoftwareAmortization1" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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="000041 - Disclosure - INVENTORIES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:title="000042 - Disclosure - VENDOR DEPOSITS (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:title="000043 - Disclosure - PROPERTY AND EQUIPMENT (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:title="000044 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails" xlink:title="000045 - Disclosure - INTANGIBLE ASSETS (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails1" xlink:title="000046 - Disclosure - INTANGIBLE ASSETS (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails2" xlink:title="000047 - Disclosure - INTANGIBLE ASSETS (Details 2)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:title="000048 - Disclosure - INTANGIBLE ASSETS (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails" xlink:title="000049 - Disclosure - LEASES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails1" xlink:title="000050 - Disclosure - LEASES (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails2" xlink:title="000051 - Disclosure - LEASES (Details 2)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails3" xlink:title="000052 - Disclosure - LEASES (Details 3)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails4" xlink:title="000053 - Disclosure - LEASES (Details 4)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetailsNarrative" xlink:title="000054 - Disclosure - LEASES (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails" xlink:title="000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative" xlink:title="000056 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:title="000057 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails" xlink:title="000058 - Disclosure - SHAREHOLDERS EQUITY (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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-20211231.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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-20211231.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-20211231.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-20211231.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-20211231.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-20211231.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-20211231.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-20211231.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="000059 - Disclosure - SHAREHOLDERS EQUITY (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="24" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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-20211231.xsd#tomz_RangeSixMember" xlink:label="loc_tomzRangeSixMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeSixMember" order="26" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/ShareholdersEquityDetails2" xlink:title="000060 - Disclosure - SHAREHOLDERS EQUITY (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="000061 - Disclosure - SHAREHOLDERS EQUITY (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="50" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="31" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="32" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="33" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="34" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="35" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="36" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsSixMember" xlink:label="loc_tomzWarrantsSixMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsSixMember" order="37" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="38" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="39" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsNineMember" xlink:label="loc_tomzWarrantsNineMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsNineMember" order="40" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="41" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="42" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="43" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="000062 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/srt/2021/elts/srt-2021-01-31.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="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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="50" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="50" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="60" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="70" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="51" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="52" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="53" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="54" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="55" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_MarchTwentyTwentyMember" xlink:label="loc_tomzMarchTwentyTwentyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzMarchTwentyTwentyMember" order="56" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_JulyTwentyTwentyMember" xlink:label="loc_tomzJulyTwentyTwentyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzJulyTwentyTwentyMember" order="57" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OctoberTwoThousandTwentyMember" xlink:label="loc_tomzOctoberTwoThousandTwentyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzOctoberTwoThousandTwentyMember" order="58" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_JuneTwentyTwentyMember" xlink:label="loc_tomzJuneTwentyTwentyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzJuneTwentyTwentyMember" order="59" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_MayTwentyTwentyMember" xlink:label="loc_tomzMayTwentyTwentyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzMayTwentyTwentyMember" order="60" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="61" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="62" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="63" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_AprilTwentyTwentyMember" xlink:label="loc_tomzAprilTwentyTwentyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzAprilTwentyTwentyMember" order="64" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantOneMember" xlink:label="loc_tomzStockWarrantOneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockWarrantOneMember" order="65" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantTwoMember" xlink:label="loc_tomzStockWarrantTwoMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockWarrantTwoMember" order="66" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_StockWarrantThreeMember" xlink:label="loc_tomzStockWarrantThreeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockWarrantThreeMember" order="67" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_OctoberwentyTwentyMember" xlink:label="loc_tomzOctoberwentyTwentyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzOctoberwentyTwentyMember" order="68" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockholdersEquityReverseStockSplit" xlink:label="loc_us-gaapStockholdersEquityReverseStockSplit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquityReverseStockSplit" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ExercisePrice" xlink:label="loc_tomzExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzExercisePrice" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="11" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesFullyVestedAmount" xlink:label="loc_tomzCommonStockSharesFullyVestedAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockSharesFullyVestedAmount" order="12" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="18" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_Preferredstockparorstatedvaluepershare" xlink:label="loc_tomzPreferredstockparorstatedvaluepershare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzPreferredstockparorstatedvaluepershare" order="19" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares" xlink:label="loc_tomzCommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares" order="20" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount" xlink:label="loc_tomzCommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConversionOfStockSharesConverted1" xlink:label="loc_us-gaapConversionOfStockSharesConverted1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapConversionOfStockSharesConverted1" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_ConversionOfStockAmountConverted1" xlink:label="loc_us-gaapConversionOfStockAmountConverted1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapConversionOfStockAmountConverted1" order="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponExerciseOfOptionShares" xlink:label="loc_tomzCommonStockSharesIssuedUponExerciseOfOptionShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockSharesIssuedUponExerciseOfOptionShares" order="24" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount" xlink:label="loc_tomzCommonStockSharesIssuedUponExerciseOfOptionAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockSharesIssuedUponExerciseOfOptionAmount" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="26" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="31" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="33" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="34" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_FairValueOfStockWarrant" xlink:label="loc_tomzFairValueOfStockWarrant" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzFairValueOfStockWarrant" order="35" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative" xlink:title="000063 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetails" xlink:title="000064 - Disclosure - CONTRACTS AND AGREEMENTS (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:title="000065 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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-20211231.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="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="22" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="23" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="24" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_TwoThousandSixteenEquityPlanMember" xlink:label="loc_tomzTwoThousandSixteenEquityPlanMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tomzTwoThousandSixteenEquityPlanMember" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:label="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_IssuanceOfOptionToPurchaseSharesOfCommonStock" xlink:label="loc_tomzIssuanceOfOptionToPurchaseSharesOfCommonStock" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzIssuanceOfOptionToPurchaseSharesOfCommonStock" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile" xlink:label="loc_tomzReimburseOfExpensesAssociatedWithUseOfAutomobile" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzReimburseOfExpensesAssociatedWithUseOfAutomobile" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesOther" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesOther" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesOther" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_SaleOfStockPricePerShare" xlink:label="loc_us-gaapSaleOfStockPricePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSaleOfStockPricePerShare" order="13" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.xsd#tomz_WarrantsCancelled" xlink:label="loc_tomzWarrantsCancelled" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWarrantsCancelled" order="14" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="000066 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyDetails" xlink:title="000067 - Disclosure - ACCRUED WARRANTY (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LoanPayableDetailsNarrative" xlink:title="000068 - Disclosure - LOAN PAYABLE (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails" xlink:title="000069 - Disclosure - INCOME TAXES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails1" xlink:title="000070 - Disclosure - INCOME TAXES (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails2" xlink:title="000071 - Disclosure - INCOME TAXES (Details 2)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetails3" xlink:title="000072 - Disclosure - INCOME TAXES (Details 3)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:title="000073 - Disclosure - INCOME TAXES (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:title="000074 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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-20211231.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-20211231.xsd#tomz_ThreeCustomersMember" xlink:label="loc_tomzThreeCustomersMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_tomzThreeCustomersMember" order="12" />
    <link:loc xlink:type="locator" xlink:href="tomz-20211231.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="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="000075 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="40" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="40" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="50" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.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="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/srt-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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-20211231.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-20211231.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-20211231.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-20211231.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-20211231.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-20211231.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/2021/elts/us-gaap-2021-01-31.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/2021/elts/us-gaap-2021-01-31.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:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>12
<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" "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#[+HJC?W]C
MI>GS:AJ5W#9VD"EY)YY B(!W)/ KS^X^.WPEMV:-_&UDQ'_/)7<?@0I!H ].
MHKR?PK\9-#\<?$";1?#+>?HEI8RW%SJ4J&-3(K( J[L<!6))(]*KZI^T!X T
M_4?L5JU]J*J^R2XM808TYY.6(+?@#0![!17FZ_&[X9E0?^$CQGL;:;_XFLO3
M?C_\.]1UF339;Z?3E3)6ZO8Q'#)@\8.21D<C(% 'KE8WB+7K+PUX?NM;U 2&
MVM@"PC7<Q)8* !]2*\XL_P!H+X<WFH36QNKN"&,LJW3P;HY<'JNTEL'J"0*Y
MCXH?&#PGJW@BZT/PW>2WE]=*K1S_ &=A' Z2(Z[@^"<X/3/3F@#G[KXV?%CQ
MAKMU;_#OP7=_V?9L8YI1"KLKC^%B_ /M6)>?%_XV6-RUK>:?JMM= [?*?1\Y
M/MA.?PKIOA_\8O#_ (2^%<UI>VLDWB"*66=HHX]BWLTLC,6R,A0,@'/.!QFN
MI^'_ ,;M'N_#T\_CC78;35&NGVQ+;N%2+ V@;0<\YZG- 'E]I\7OCA>S+#9Z
M7JUS+G!1-&/!^I3C\:U=.^/WCSPCXABT_P")GA>\M;6Y^>*6XMQ$Q4==N  <
M?C^M=O\ $#XZ:7I]CIEQX'U:#4+@78-U \#@/"%.1E@,<XY'-<+\</B!X5^(
M7PYTFQTE7.J23BY.].;/ *LK'OG=QC(..U 'T_H^K6FNZ'9:Q8L6M;R)9HR1
M@E2,BM*O"/AG\8/!5AX#TK1M9U!].NM,M8;9VEB8K,P0 LNT'C.>O-=K_P +
MH^&?_0T1?]^9?_B: /0J*\\_X75\,_\ H:(O^_$O_P 34<OQM^&<4+R?\)(K
M[1G:EO*2?I\M 'H]%>1Z#\?O .L7HL[B2[TAG;:DE]&%C;_@2DA?QQ7JZLLB
MJT4@((R"#D$4 ?'G[8GB/5$\0>&O"\<SKIC0->20@X663?M&?7 !Q]37AR:A
MH]M!$5\.PRNO\3R$ ^]>U?MI0QKKG@RY1 LS07*,X') :,@?AN/YU\\0S>;M
MB8X8 9) Q31)NZ1XHU2TN=2M=.5].LKR+R9UA8!74E25]>2HSZXQ7*:]JNH'
M59((9=BQ8'3^5;NC7:V]CK,4UDDK3>4D<I4YA.\'(.,=%(QD'!K#U"W\S6KH
M^X_E3*,K^T=4_P"?G_QT58;6-1:V6$;% (.X#DG&,UH:;I,=]>2PSS-%%%"T
MS%(S(V%&3A1R?_UU/?Z$MAJ7V02&12JL"RE6&0#RIY'7I4@93:OJ3VL<"^7'
MLP ZI\V ,8YJ$7^K?\_7_C@KJ?\ A%G%B;S[58E-F_RQ=*9/ILZY]JP"NV[2
M,QKL=BHQR>* *_\ :&JC_EZ_\<%)]OU7_GZ_\<%=1<>&+FWM1<2-:%-H;"7,
M;,,_[(.<\]*S[727N]PB!9P3\BKDG% &1]OU7&/M7_C@J*;4]5B"_P"D=?\
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
MK[1_929HKOQ:K6L4:2&!A,K@M(0&!##L1D?7/M7R!8+HJZK:-HC7I0QGS5O
MF5?GA2O48[D"OKC]E.SAAUSQ1=A@9;B"$OCMAF J2S(_;:'R^"&][OG_ +]5
M\E223+*%2/Y2 -^[ KZW_;: ^R>"CW\RZ'Z1U\?M)&LJ_:&V*!QD9S5 =KX7
MVKH7BI65Q.MK;"0-@C_CY3&"#S5:+<)YSC W#KWXJ3PC(LWA_P 5S+(K#[/:
MKCO_ ,?$?-5@<27O/1OZ4 3BYB)8*V=IP:L1S1M_&,^YK&M2<R9_O_T%6!UH
M VU-3I6+%,\9&TX'IVK3MKA91Z-W% '5:?)!]C DAM&96/\ K;224G_@2G%,
MU-;=[1O+BLPY8<Q6DL;#\6.*TM,LVFTZ*2UFV*W^LVZB8AN]UV\'IZT_4K*2
M"RG>[E9T!X5M2,GS=N-G)J@,2&]1(XXCIEBVT??:%F9L#O\ -S52]O!<1J!9
M6MN5.<P(5)^O)IT7^M7MU_BV]O6JLP^2I QM:RU@,XV^8/KWK"DE6,H"N<@X
M_"M[6/\ D'J/^F@K*CCCD7;*H8=@10!&DFZ$..A&:TM-\,Z_KVG:C-I>GB>.
M&$ES*VP$'^[G[QXJEB*.6,S+F)6&\#NN>?TKZ$$S:3X5M99KU9_M)*>0Q41K
M%MR?3;@?E0%KGS5H4,D5[%O0J2#U[8ZYK['_ &57C:\\0A8\$01;FSU.]J^2
M+&2WDO\ =:Y$/F.(P3GY<\<U];?LHO*=4\2(W$:PQ;/^^FS0!D?MM'_1?!2]
M]]T?TCKY"N5\RVVA<G%?7?[;;'R?!*]MUV?TBKY)1NQP>!0!O>"%:/P]XI##
M'[BV_P#2A*3/SWO^]_[+5KPP-NB>* /^>%O_ .E"54R-]W]?_9: *MN>9>?X
MOZ"K:U3M^LG^_P#T%6E/% $F>U/5F5@RG!%1#KFEW\T =7;:_++$H,5ON4!3
MFWC)X]\<U9&L38;]Q;?-QD6L>1]..*X])&1]RG!K0AO8V&V0[&_2@#72Z6-M
MRKS[@&HY)0R[0#4&]<9'(HWCI0!0U@9LE[?.*RDSCBM363BQ7G_EH/ZUF1L%
MCS0!9T[3;K6=16PM8?-E?)V[@N1]36;XNN[K[0VG"6=;2V8%8)F#E&Z<G'/3
MO77Z#-/HFGW>N^7$=\;0H6D&^,D</MZXQFO/M2F:Y@FN)#N>1\DGK04:>EW[
M:A?Q3M:P0.%VL8$V"0_WB.F?I7UO^RG;R)JWB:=K6<1-!"!*X&V0[F^[SGCW
MKX^\,X\X ^_\J^S?V4X1Y/BV8&Z.'MX\2$^7T8_)_7\*D# _;:(^S>"O7?=?
MRBKY'A&6!]0/PKZU_;;8"+P2I'):[.?^_5?(T;<#G'%427M/N[B&[GMH9F6*
M?:LJCHX# C/X@&M'/SW?U_\ 9:Q;##:H2.@-;'>[_P![_P!EH KP?\M/]_\
MH*LKTJK;_P#+3_?_ *"IP: '/(5PJ#<QZ"C['-(,R2-]%.!4UNB@F5N3T'M3
MWN>H7H.] %'R9;>X4+(Y'=6.1BIX;E)@VW(*G&#_ #I=Y;G)YJ*6+R+J-EZ'
MB@";=@\''TXI0>?O$<=3DXJ$GFES\K?[M %_5W)TV%B<G>/Y5D*[, %'/85I
M:R53286SGYAQ^%9-M/&L;W!!Q'PN>['I^76@"6^N9E@:V63Y" K?[59-XNW3
MC]14\LT;MW 'K5&\ND:-H!G(((/K0!J^&?\ 7+^/\J^]?V>?">J>'? -YJ6H
M21W"ZW)'=6T:MDI&%Q@\<>M?!/AL_OQ^/\J_1?X-^)='UOX6Z1INFWR27FFV
MR074$OS/$P[D>A['I04>#_MJ6$4>J^#]2\R5Y)XKF(QR2L8T"F,@JF<*3N.2
M.N!GH*^4(([F>7R8Q&G^T*^LOVTK6Z%]X4NY+XO9LEPD5J(U'EL-FYMW4YR.
M.VWWKY)@NH;=7$GFACC&*"2[I\K+J#6S0@2# 9PV<X/_ ->MC^*[_P![_P!E
M%9>EPR37#:E'',8MXC:0I\@8\[<^O&<5JM]Z[_WO_9: *EOR'X_C/\A5@=*@
M@Z2#_;/\A4XH <TGEP&H>6E6,_=4;B/7TJ1E5DVL,@U$L,B9\MP3MP"_UH L
M+\TBKZFG71#2(/3FHX<QDL[;G/'TIQYR3R30!'U&:,_*WTI=O8=*3'##VH L
MZ@RS1VUK(N4;GWX%5OL=OY*Q;/D4D@9/4TNKR-;QV]RHW;>,'W%97]M2=?(!
M_&@#0:PM1@^5GZDU7?3;,MN, S]35.379%(7R%S]:A;7)C_RQ3\S0!TWA32)
M=4\96&B:>$CFOI%@C#$A=[-@9]N:_1?X?_#G1/!N@:<W]FVMMKD5HL%U=V^2
M9&XW')Z@D>E?FIX?OIIM9\X'RG1<J4)!!]0:^^O@MXU\8:GI^@:-K&@K%I3Z
M>WV;46E9GN3'@$G/?GF@#RW]MB://@J#<ID NW*YY _=#I^?Y5\<W&6)X./I
M7U_^VAI&H/J/A36HX6-@(IK5I1]U9-P8 _49Q_NGTKY)\F0CUH Z'P[/-)X;
MOM.\Z%(8KB.[V,/WCM]S@^F&SBI]N9+D9ZM_2LS0-/N)FN;R&&25;5=\VQ,B
M--R@$GMR0/Q%;[6<V]KBV:-XY><.<?B#0!AH[1LZM&2=V<@BI%N./]4_Z?XU
MHFQNSUMX3])?_K4?V?<?\^T?_?T?X4 9_P!H'_/)_P!*7[0/^>+_ )5H?V?.
M?^75?^_@IW]F38YM1_WTM &=]H7_ )YR?]\TGV@?W'_[YK4_LJ7_ )]5_P"^
MEIPTF4G_ (]U_P"^UH R#<(.=K_]\T^)O.D\M4;+>HK7&CR$9%NO_?:U-#IL
M\1)6W4?1UH Q/$?[O2$SSB0#]*Y(3J/6N\UG1[[4+)+>.-4P^XEG'3\*P?\
MA#=0_P">L7YG_"@#FW/F2%E%-VFNI_X0K4,9\Z+\":8W@W4E&0R-]":"BMX9
M'^GLW^S7Z#? GP7JVG>%M'\0:OX@DNX)+,G3]/A;,5M')AB22,EC@9 X'O7P
MQI/AZXL4,\V5/3GO["OT.^!FE:EH_P &M#MM2WB617G1'/*1NQ91^1!_&@D[
MK5M'TO7M,FTS6=/@U"RF&)(+B,.C?@:\FN/V8_@W<SRR_P#"-SPER6VQ7TP4
M9]!NX^E%% &9X3^ ^E^"?BY<WFB:>)O"&HZ%+9W,%U-YI$[2H2I#<E65??!!
M]JKZI^RKX/NM3-QI>M:GI5F[[FM$(D"CT5CR/QW444 :G_#+OPYQQ>:V/^WP
M?_$TG_#+_P /A]W4=<7_ +>D/_LE%% "C]F'X?C_ )B.N'_MY3_XBL/7/V7=
M)N)D;P_XIOM/3RR&6Z43[GW#!XVX&,_CBBB@#*U#]EV6'P[>MI_BRXN]83#6
MRN@CBD 4;D;J02V<'.!QD=ZJ?#_]GFUU[PG]N\77VOZ-JOVB2(VR&- %4X!P
MR$G//.<'M110!2^('[/]UH>H:!8^![C6=6FU&62.9KDH8X  I#,RH HY/7TX
MK9U#]EN]^RPG2O&;"X$(\];F+*/+GG:5Y5<>H)_/@HH U=-_9=TV.U9=8\9:
ME<3[OE:UBCB4+@<$,&).<\Y].*O_ /#+OAGMXLUS\?)/_LE%%  /V7O#8_YF
M[7/_ "#_ /$5%-^S!H;0L+?QAK*28^4NL3 'W 4?SHHH E\*_LVZ!H^JQ:EX
EEUB;Q"T+;H[=HO*B)[;AD[OIP#WS7O:JJJ%4  < #H*** /_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>13
<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" "Q )X# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
M.5489!.[]*]*U'_DX#5??1H?_0ZX73;]=.U>RC:,R&YG2,$'&WYNM=_J2?\
M%_\ 4O?18O\ T,5YV8I+#M(Y,8VZ$KC/$WANS\26D<$\TEO+$28YHOO $88?
M0BL6+P'8P^%K_16NYI)+[F:[X\PD8V_EBNW=2/\ &L >)]#?4$L%U!#-(=J?
MW6/H#TKY*$ZSCRQO9:GS$*E;EY8MV6I@^%_!4'AO4)KU=0N+N22(1?O   ,Y
MXQ7FWQ6E6W\<WRO'$WGZ?$@+]4X/->^$5S6N^"] U^\:_P!2MY)+C8(\K(5!
M Z5O1Q/)4YJFNAT8?%\E1SJ:Z&-JVCWVO?#"PTZQD"W'V>W?:S;1* HRN?>L
M#P_X=U3P[X4N4U1@AGNXFC@#[O+ X)STR?Z5Z3#!':VL5M%\L4*!$'H ,"L?
MQ*1_8I.<_O4_G6"KRYG'HW<YUB9.\5LW<PO@_P"#O$WBCXF>(IO#OB :0MA=
M1R7:G)%S'YI.SC_=-?=3]:^*O@'XVL/"_P 5/$VEW%A?7UWK5Q'!;1V<6\@J
M[;BW/  8$GT!K[5?M7U5/X$?;8;^''T)#7Y7>+ 8_BQXI4_]!2Z_]&M7ZHFO
MRS\=+Y?QB\4K_P!1.X_]&&MH[FQRU_8F=B_<=Z[3X683XEZ&H4#KT[_(:Q0%
M,39!!QUK8^&; ?%#0\GK+M_\=-377[N7H<N(UHR]&?65L#]F3\?YU2T=<_&.
MV/IHLO\ Z,K1MU_T=?Q_G6*FL:1H/Q2MKW6KZ.RMFTJ2,22'&29.E?.X'^.C
MYC _QU\SR.VV+J.J;F5?]*?J?<U8=HNOF(3]17H<ND_ N>>2:3Q!NDD8NQ$Y
MZDY--_L'X%X_Y#3'_MLU?8*I8^H<;GGN^+ _>)_WT*>K0Y_UJ?\ ?0KOO[%^
M!(ZZPW_?YJ:=(^ ZCG6#_P!_FI^T#D/.W,;:WHVQU;_3$Z'/<5ZCJHV_M 7_
M +Z)'_Z&*IP67P+M;F*XAU@K+$PD4^:QP0<BD_MK2]?^.%UJ&CWB7=J='">8
MO3(<9%>;CY7HR9RXQ6HR-'Q9)+#X,UJ:W8K*EE*5(Z@[#7R1!K$UO]C:&YE:
M=7RRM]T#C&*^O?$F5\*ZNP7=BSF^4=_D-?'-O':_+(9&\Y=K*/4Y'%>1@_X<
MSSL DZ<[GV)"Q-I#(_WF12?KBK]KX;N+_3/MWV];5)"RQ*Y)+[>I]@,]:PUO
MHOLL3RMC**6 ZKQTK;\/>++JV"J;?S+-)0\>6(*KSE<?Q GDCV%>>HPY[U-C
MP'.FJW)4>_;H<[/I&HV-U/:ZE<D3Q2;6C7H,=L]ZYKQ%YL%H;<L) [*_NN&K
ML]0GOM3O;F\N)E$LTA<LBUR_B*WC@T"X9<LY=,NQR3\U<\K<^ARJ/[V\+VOU
M-W]EN.&3XF^/))(4,RJA1RN60%VS@]L\?E7U7<?>%?*_[+(V_$WQV/2-.?\
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
MQ=\6?$&E6/B!M-TT0*-695!>ZARO[L CC)'7M7W@5V(JKT Q7R;^S#Q\8O'
M_P"G6+_T(5]9R]J^EP_PQ]#['"_!'T+-?F3\=_E_:(\7C_I\'_HM:_3:OS*^
M/@Q^T5XO_P"OM?\ T4E:&R//XEQ&3W':MWPK=1+XD\.1D@LNI(2O< L,&L%6
M/EE0.U6_#+J/%>B;00POHLGU^<8J:GPLRJ_ S[KA_P!0/J?YTM,A/[D?4_SI
MQ-?)R/B*FXF,TC8 IK&HR>:S,6S"70B]](\TVZ"1M\A)^>0]E/H!6XL:1H$1
M0JC@ =J3-)NJ%%+8R4%'87-5;Z[CLK&>\FD$<4"&1V;H% R:L$U1U33[?5-+
MNM-NE+074312 >A&*N.^IK"W-J?)6O>*+[Q5JLFK7@W)'F$,.JIN)3/X'&?:
ML]3N'O6EJ&D7W@?Q7+I>J0[H?N$D?+/">C#_ #P:]#\.>'_AW>VH%Y)#'(O7
M=>[<C\Z^E]O&E%)*ZZ6/KXUXTHI)7CTL>4M4,C!1S7OC^#?A<!_Q\VI_[?\
M_P"O7+^)K'X>Z!I\NH:>MO=7<7^HB%R9-S]LC/(H6(YG9194<7S/EC%W]#D?
M"OBZ^\(W\5LZ[(;R=9+A6ZB/&%SZ=<U[;XBF6X\(74R$,KHK C_>%>$^"_#]
MQXP\1M=7TF8!)YDSM_RT;KM%>[:_ EOX/N88QA$15 _$5Y.,Y/:*V_4\3'<G
MM5;XNIJ?LR_\EL\;?]><?_H2U];OT%?(W[-<T2?'3QE TBB1[%"JD\M@KG'Y
MU]<OT%>_0^&/H?2X;X8^A8/0X&3Z5^7WQNN+NY^/'BNZU"S&FSM>?-;O('*
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
?%%%%44 IU%%#$QM%%%,8ZBBBI)&T444%#J***"3_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>14
<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" #  )D# 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*JW5S#:V<]W<.$A@C:1V/0*!DG\J .)\6?%3P'X'O5L/$7B"&VO&7=]G13(X
M'J0HX_'K7G>J?M7?#FU++8VNIW[#H1$J*3^))_2O"_A_X5D^-GQ<UC6-:LKJ
MXL+N[DEFE5L"W4[B,G(R!A$ YZ]../J?1_@C\/='%J\>A)-);*5#28.__>
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
M7X=ZHZ1K#Y2L.&;)Y-9\\@+,WQ4\275L]O=ZQJ]U XVO%->[D8'L05Y%=/\
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
M$?O8J_0"O@[]F>Z;0/BMI5QJ%J?)U>TDLH;EL J[8?;[@E /UK[QJ0"BBB@
MKX@_;1_Y*'X5_P"P<_\ Z--?;]?#_P"VE_R4/PK_ -@U_P#T:: /F?AX6SR>
M:[;XI?\ (#\"^A\,6Q_\CSUQ!95@<?E4^IZI?:II-O\ ;KAY_LENMK!N_P"6
M<2O\J#VY/YU8%*T4G1YCSCV^M68U4JOS#[N,D]:AT\?\2V4<'(YSVJ[%&5"\
M[2 !Q_*K[ AL2-G&TD=#^7%/C@>:9(HXVD8_PJ"2?RK0TS3)M4U*"Q@X:=]N
M3T4=R?H,U[KH6AZ9HEHD%C;J'P \S#+N?4G^E85:RI>ISU\0J6F[/!XH]4TJ
MXBOD%S9RQMNBEV%2I]1FO5/#WQBC$:6OB2U<N./M=LH^;W9#W^GY5J^-M>T6
MV\.7^F7$T5Q>SQ&..WSEE8]&./NXZ_A7GWB_P;_PCUKI^H6\S3VMW& Q91^[
MDQDCZ'J/H:Q3C62YU:YBI0K)>T5F]CV&+XA>"9D##Q%;H3VD#(WY$5YKJ]Y9
MZGJ?BC4+>ZMKBT::-8W+_*PV]0/J*\W^;<R-T4Y QWKL_!<7A1M/UD>,+Z^T
M_2MT7[ZPB$L@EPVP;2#\IYR:N%"-*[1K2PT:3YHD-KX@TVVA6%O$%Q"ZC#+%
ML91]#S5U/$WA-]/EL]0O[J]CD8,1(. <8&%''Z5W3>-/@^OA^RT:WU>Z^SV3
M&4!]+;-P^U@HD;9G:#CI_>8]0*N7>J?#F8GC5[+S%,12/1Y2LQ.&VG='UP&(
MQGH..I$\]3^7\3:\NQY*TGPW;D27@S_N\T%_ARN"OVY_^!J!_.O9+77/AOI\
M7VZZU#4;NRNI)+5E;3O.,HYQQY?WU 7@8 SG/3/*ZE<?!NXOKZ\\0:[KD>M7
ML?ER9L'B6TC(! B38,G&>7XP>F>:J,Y-ZQ&K]CF? VL:;<_$3PX+-I1]CUBU
MD@B=LC F7EO?Z=*_3"OA=?&W@75=-\#>#?"MW->S:3KEHT<\VG_9W:W&U?G?
M^)MY)QTQCIT'W16A04444 %?"G[9%Y]H^)FA6ZV\\9M=/(:22/:DF9"<HQ^\
M!T..AK[KKX4_;,N?,^).@6_V6=?L^G$>9)'A),R$_*?XL=_>@#YJ,HVE Z[G
MX'-27$;0Z3+&P(<'Y@>QRM+''''I<P\@!Y%/. 2/2HO+:/075\Y#'Y3V^9:M
M 2Z?_P @^3YL?(>M:\49*IC=PO7M61I@S:28SG8:W5RN&#9Q_$*U6P'3>!=J
M^)0[XSY#[2>YXZ?A6_XLU[43?KH>FS&V)0/-,IP<$9Z]E Y)KA=/O9M/OHKR
M'!:)MV/4=Q^5;VK2VNHW5QJ.GW"N]W:A#"3AT8,@(/L17+.G^\4GL<=2G^\4
MGL<U';BXU!;>W#R"60(K-U?)QD_7/ZU[1\0?L_\ PKMX)>J20B/_ '@?\,US
M/ACPHVC77]L>()X+9(!NCC+C"M_>8]..P]:RO&?BB/7+B.TLG)T^W)(;IYK_
M -['IZ5$O?J14=D1+]Y4CR[(XHH%!V\9XP.M>P? 'P?X<\;>)M3T'Q5;F?3!
M&MPRB5HL,@)!+ CCGZ5Y)WZYSV/:O=/V8Q&?B!K<;LR(VG/N*]5&TYQ77/8[
MSZ$NO@/\.;IHIH]#MKB&V7=%AR&)&T@$K][[HZYX/3KG/F^"OAV2WMO^*998
MDD\PK]H=GC9@=P4=,9QP../2O0K>#2V(,VK3QNK#"?;'0GC.-@8]0>1UZ5UB
M;5@7;G:%&.I./YUB!XC:_!_P;8W3P_\ ".['7]]M9LL^6#$*2.<EB,#([$8&
M*T[?X*^#9M.6WN?#-LD8D$BAY,R!BVXDN4W'D\+G';C&*Z+7-6:74FF;POK=
MS':9C!6W;:X+#<ZCS%!X'!(R/I5*VUJ]_<W,/A?4F>UG3S!';,5EC8MMV?O<
M$JO7=W92 >P!Y-\5/A;X-\%ZSX*USP[I;6=_=:Y:6DKB4E6C!R!L^[G*CG&3
MWKZFKPCX\7"W-I\/91')&6\26I*2*59<@G!%>[T %%%% !7P_P#MJ 'Q]X7W
M 8_LY^O_ %U-?<%?!O[8UGJ ^+.D7LD,@LIM+1(7/W"ZR/O ]QN7/U%- ?+T
MH57^3@5U&M"U_P!*-G;&WMV96C3 Z?+Z9_2L)X6VYV"NG\3:Y<ZYI&E1O#&@
MTO3X[&-HLC>J.6W'WRQII#+7@.+2[?4X)]>BC>UD^XDA&UAW)R<8_6O=%'PQ
MDTN)U_LH7#(O14++R/\ :X-?+MEO$+(&P<A@,]<?_KKNK;XA>)X--CTTZNS6
MB*$6-H8FPHZ#)7-)W(/7]=M/AU#<(;"31Y4*\_N<$'W^>LEU\"K./*ATEDR/
MX"2/Q#"O)KK6;C49$::12BL6VK&JY/X 4^ZU$2:BUW8A+)&7;Y0&]?US2U ]
MC+_#^;<;E;>=LX ." ,=LOZUA^)(/"=YI/V31+>U&I,XV2Q.OSG/W3AB0<<<
MC%>=)K>J0*?+U)5W=<0H,_I5&[U&X>"XNGF/[Q?+;D;I"S GC\/PIJZ!$MPR
MVUQ);W#"*6-BK*2/E;TKW/\ 9?\ WGQ UH1E6/\ 9[KDC(^[^M?/"2131@K)
MME7GYN,_0U[7^SIXH\/^$?$.L:SXFO%L[#R?)+L&;+LOR@[06YQUQQ6DG=%'
MVCI=K'O6.XC6.6,&0N=B@@\="ASC'K75^651I)+@F,C)5MNT#'3..E>7:/\
M%#P(^C2Z[-?64=BH0)-%,TKN[':5VD;L].W0FM5OBU\/;BVN(5\311$0NW,;
M9"@=1\I!Z]/TKFYH]Q71IZI>1_:XA#,IC\L1^6B+, Q)ZG/TSV .:BDU729F
M:>3S<[0I1;<LI7IG/KSGKT'>N4A\9> 6E,D.O1O+"ANG>.RC!C4*!OQY1.<!
M21UX HU;XO?#S2[P:=>>/$M;F6 3^7'%')^[ +')$1&<#[IY.3@52G%]0NC(
M^.EQ;RV7P\>U</%_PD=J !_#P>/:O?*^3OB1\3/ _C0^ M*\,>(O[6O+?Q#;
M32YA9'V!BN]OD5<DD<=:^L:H84444 %<UXG\(^&_&.E_V7XHT>WU:T#;E2=<
ME&QC<IZJ<$\@BNEHH \.F_9:^#LT3(GA^ZA8C ==0F)4^N"Q%<-XB_9CO=8\
M :#%97EE:>*=*MS:S$D^1=H)&*,6 RK;2.=O/0] :^JJ*=V@/B71OV2_&6H"
M637-0TK1V4X18U-PS^YQ@ ?CGVK:_P"&/-6  7QEIXP<_P#'BW_Q5?8%%/F8
M'R W['^L,2W_  F6F@_]>#8_]#K$UW]E7QQ9,@T6^TK5593O.W[.5.>F&)SQ
MSG-?;5%',P/@#Q=^SSX^\*^&(-=FM(=2Q(R7-O8J97@&["O@<LIZ\=.]=K9_
MLC:K>Z9:W0\6V$330K)L-DV5R <$[O?TK[*HI\[ _/;PW\ _&GB:^UVWLK&T
M@31IY;9Y9P8HYY4)&R,D<G(ZG  (R:QOB1\%_'7@?PV^MZIH\4&GQW M9'M9
M/-#Y7<LIQ]U>JY..<#O7Z18J*2-)8VCD4.C#!5AD$4.;8'XYN&\QOE/Y4;7_
M +C?E7Z[2^%?#$\K2S^&]+FD;DL]G&Q/XD4W_A#?"/\ T*NC_P#@#%_\34 ?
MD7LD_P">;?\ ?)I<,/X2/PK]<_\ A#?"/_0JZ/\ ^ ,7_P 31_PA_A(=/"^D
M#_MQB_\ B: /SL_9S\&W?B[XSZ,/LSOIVFRC4+R3:=J+'\R G_:<*,=QGTK]
<,*JVMG:V<?EVEK#;IQ\L2!!^0JU0 4444 ?_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>15
<FILENAME>tomz_10kimg10.jpg
<TEXT>
begin 644 tomz_10kimg10.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 )T# 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 *9(ZQH68X YIPK'UIY#+86T;.@FN &9&P<#F@3*;Q^)+^_
M$D=]#IMBK?*B1>;+*/<MPOX#\:>MY>V&J06&I21S0765@N%78=X_A89_(BNA
MZ5EZU:I<6D+,S*T,R2*4&3D&FO,+&K12 @C(.12TAA1110 4444 %%%% !11
M10 4444 %%%% !7'^.O'GAWX>^'9-<\177E1#Y8HDYDG?LJCO_2NDU"^M=+T
MZXU"]D$5M;H9)'/0 5^??QB\;:E\0O%DU]<.ZV$!*6=OT$:>I'J>IH$>B_\
M#8FK/J[_ /%'VR::6^11<,9@/<XVGZ8_&N^TGX[:3XR-DMOY%M<13"3;)(0Z
M?\!XS^&17Q#-;NI[@U%'<20N&3*NIR&!QCWKCKT95-:<G%_@<U6$IKW96/T
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
M;500HO'89&.N#_6OIKQ9XN\8:E\8K#5-$UN2S\+Z-J]MI+VZ#Y;V23F0DYY
M&!^->!?M##'QRU_']]?_ $$4$L\DA5@X/K6O;1EL5FQJ2X^7(K;L8SQ28CT_
M3F^T>&("><)@UQ%R?*U%CT^:NOT,C_A'V0_PL:X[5ODU ^F:Q(ZG?>"KC=J$
MZ8X:('.?>NV)KS'P3< >(HT.?GB917I1-?GN<0MB&^]CY#,E:LQQ:JU_\^G7
M*KU,38_*I"U0S?-!(OJA'Z5R8?2:9Q4G:2/-?@]<"W^,6B22< 7@7Z9R*_1:
MOS8^'[R6WQ+TU@<2)?(>?]\5^DB-NC#>H!K],P^M-'WU+X$24445T&@444=J
M /%/VD-?U71/A(]OHMU):7NIW4=FLL;;2%8Y89[9 (KX^T+X;:MXBUO^Q_[0
MN+_5.6DMK5#,8U'=F8@+Z<\5]1?M"?\ $PU;P;H:D-(L\M^4'WF$:?XFJO[/
MOA,VWB77_%5U-)]KF06XA9LA5)W>GM7'4JOVBIIVN>36K2E75&,K75_,\UT?
M]EWQ%<QQ-<6,]B6)WM<7D2LH[#:@<$>^?PKB;_0]0\+:AK'A/4K+[/)I\H,:
MRD.0&_B5AP0>M?HE7QY\?=.-G\9;BZ+*8[_34<(,YRA()_45NH6ZW.R%'V>O
M,WZLZW0M#M].^"WP]AMI$G>[UV"\FE3^)_,Y_( #\*\%^/%U'>?&KQ'+Y941
MSB/D]<*.:Y"7Q#K5E(UDFLWB00R;H8?.8)&?51GBN;U[4;FY8M<3/<32_-)(
MS$LWU)!S^-:(W$2_C6<1%-O/!VG:?QKJ].C\R,$*5(ZK7$6.ERZG>>3:6ZN4
M7?(<+\JCJ<8!_G78>&5:.3R2X=5;"[0 -I[#%)@>@:+%C1YNHPU<3K;8O2<\
M9KOHU6UTJ7G&3WKS;6+A6NVQR/6L^I/4Z'P9.X\46>W'.X-],5] 6'AW3;BT
MMKB\UAH/M"[@%5!M.<8.6_I7R_H.K0V&O65U,Y2))!N/H.E>V_;+!HA.+RW,
M;<A_,7!'YU\MF-/EK*;AS)H\#'1Y:RDXW5CMKKPYH-K"TA\11N5 /E[ER3W
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
M]N97A,/V.U!93GNSD#IZ ?C6:*2N?G]<:?K'AN_$.K:;=Z=.#N,%W \+\>Q
MKNK+Q1:/IICCD7@?>;@+]:_2_4-*TS5K9K?5-.MKZ!A@QW$*R*?P(-<C_P *
M;^%/F>9_PKWP^6W;O^/"/&?IBJ:N6U<_-:^U:;5+Q=/TJ&6X:5L!(E+O,WH
M.?P%>P_"O]FGQ?XUO5O/%UG>^&=""[M\J!+B;T"HW*_5A^=?>6E^'?#^AQ[-
M%T.PTU?2UMDB_P#00*U:+!8^>]/_ &0_A#:(OVR/5]3<#!:XO2NX^O[L+71Z
M?^S7\%=.=)(_!,5PR=[FYFF!^H9R#^5>PT4QGF%Y\#?A;<:7<6%KX-T[36F'
M%U9PK'-&>Q5^OX=*\9NOV<]:\/\ B-M4TW0M"\6VX!VK>HJNW^_&_P C'W##
M-?6M% K'SUI7A_XN:?:-;>&_!/A;PL1]UX8;>$#/4C8'_E5U?@_X\\3R))\1
M/B-/-;G!>QTT$)]-Q '_ (Y7O%% 6,'PYX;TCPGHD6DZ':"WM(NV2S,>[,3R
M36]110,**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
#/__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>16
<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" "= * # 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
MK_\ 6J.X4O:ZA&TLA5(<J,]R#GM5O['#G/DH/JM,O[:V33KD+"@_<L00OM5
M5?A_).RM$UP[Q"#<L)/RH=V"<>_]*[SG'*UR?@>VM8- BNUB"W$HPT@') [5
MU!E&/O-4@2#GM1VY%0&;W)_"HVF!H M;N>%HVM(Q5:IK(OO3]W[MNHS0 V:/
M;)#ALYDP?;@U]5^!&\NY\%IW;2,_JO\ C7RWK^JW=\VF&Z\L&VACMT\N,)E5
M#8SCJ>>IY-?4/@HXD\".>K:0!^>VO#QWV'_>1WX1:S7D_P CV\4M(*6O9AL<
M 4T@,"K#(/4&G458'YBZQ;I%\3O&,,$2QQ0WS*J(,*H#$  >E+&DD8 *Y!_2
MK&H_/\4/'+$]-2EZ^TC"E##>2W<^M6@-C0=<U'PS?F^TQHA,T?EGS8PXVD@G
M@_2NI;XF^*Y'\R22R+=,BU4?RKSYCC#9Q5J.3]T&Z'UK*=*,W>2N0XIG4-\1
MO$\<IFCDLRP/4VX_QK,UKQ5KWBRVA34VMO*M&+*88-AR1@],YZ5STW\?&?:I
M]'N&_P!(M[J\C ^7R0Y"ENN1[XX_.IC2C!WBK#44B]9:#=7EY#&65DR681N
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
0% !1110 4444 %%%% '_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>17
<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" #V +P# 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#@]6U36$U[
M4%75KP*+B0 "=L ;C[U5&LZSC_D+7G_?]O\ &I=8C_XG^H?]?$G_ *$:I^7Q
M7AMNYZ26A:77-9Y_XFEY_P"!#_XT_P#MO6^VK7H_[>&_QJJL7?%/$34786)S
MK7B#^'6KP?\ ;9O\:/[<\18_Y#=W_P!_6I4L;AD,GE,$Z;B,#GI5A=!U*0@+
M;D_\"'^-.X%4Z[XC_P"@W=?]_333KWB/_H-79_[:FM>/P?KDV-MD3_P)?\:M
M1_#_ ,1R=+,?]_!3YO,+'._\)%XB!YUB[/\ VT-.;Q1K8"C^U+W/?YZZE/AC
MXED_Y=4'_;05:7X3>(Y!@PQ#_MI2]HNX^5]CC3XGUG'&K78/NYI!XFUK:<ZK
M=$]L,:[^+X->)'QB.+_ONKL7P2\3-QY4 ^KTN>/<?)+L>:_\)+K(7G5[L-Z8
M8_UI/^$HUK_H+7?_ 'P_^->L)\#]=N(EFC,!R/N[^>.*9_PI'Q("?]%SCN'7
MFCVL>Y/+8\J'BK6>^JW0^JR4G_"7ZP#_ ,A*Y;WPXKU)O@KXF"_+9MG_ 'A_
MC5"Y^#OBJ(G_ (E[M],&CVL>X)7.(A\5:DR_-JDX/N6IS>*=6!XU*7'^\W^-
M=%+\,?%$(.[1Y_\ OG-9-SX(U^#/F:3<C'_3,TN=/J/E?8J#Q3JF/FU:0?\
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
M8=+J-!$9 Q2$  A0>G&,^QQS45S817UF]M=*7C8\@,5/YBD6SC@18XH$15&
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
MYT7;=7T EDD9V7S@".:Q+GP;HER=AU=I+<,=D9DRJ ^F#6+INYB7(^4#K6W
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
M:L2+29H9RMCIK1;^&=%;)'XUO6.DZB]POF6TWEXYW"M$U;4AQ?0Z4OM.WS%
M'JU317$2D%IXQ_P(50_LAL<62X]R/\:M0Z649?\ 1(%]V9?\:E- TS1-YICJ
M!/<6[#N&(-<UK7AOPCJ19TE@CE/>,X(KJH[.!57*V:'W9*MS1VCA=LUBG_ E
MI\R#EEV/$[KPW?:/*;C1=8.1R%5BI_P-7]-\>^)[!PE_8+>1KU.PJQ_$5ZU'
M;VH.&U*Q'_ B?Y"G"PTG<&;5K'/^RCG^E/GCW%R3['*6/Q2\.2(JW<=[:.3S
ME0X_2M@_$;PI&59KXD@\?(:T=2T/P3>6;),UF\W9A;/G\\5Q=U\/?#+M^ZUM
M;,'MY;@'\"*/:Q7VD4J,WT9ZOX=^)>CQW226]G/>>T3*,_F:]8L_BW=26RQV
MG@75)\# /FQ@']:^1&^'?AN-3Y?B_:6Z_P"BN<?0T)X4L;6+;'X]O% Z;(''
M_LU9RK0?4T5"?5'V%_PLCQ)(=R^ W@4?\_%_$G]:IR?%B_@D:.;2-*B?.2K:
MS%D?K7R(WA?0)7W7GC#4YO7$/)_-JTK?PC\+/(7[3K&O22]V4PJ/RI>UAW*5
M&78["YT"2U\0:A<138,D\A/[S'5B:5=#B8_. >^=_6O4;U8?M\_[I,[S_"*R
MY[(,Q:# SU6OGWF%6^Y[*P%-*]C$L/!U_)LDM]&E<D9#;&(/Z5U]OHGCE;1;
M:&UGA@7(5!&>,UT7A?QMJ6BVGV/4+<7T"#$1W@.GMGN*ZK_A:2D<:+CZS#_"
MMUB8S5Y3M\CG=&47:,+_ #/%Y?A#K%R[2-H[AFYR(S38_@MK;D :4P_X"!_6
MO9F^*5Q_!I,8^LO_ -:H9/BEJ'\.FP+]7)H^L4OYW]P_95OY%]YY='\$?$!P
M%TM5]W*BK2_ _P 1<*MK:J/<BN[D^*FK#[MK;+_WT:HS?%C7>0@M4/M&3_6C
MZQ1_GD/V5;^6)SD7P3UX9WQVV>V& JW'\$=4;&Y;9#ZEZKWOQSU:VEDCDU2Q
MA9.NZ,#'YFN;F_:*U906_MB *.ZPKS34Z;VYF)^U6ZBCNX?@7=<>;+;#WRQJ
MROP-C/WY+?\ [Y8UP>F_'35]8N(X8-4F!E^ZP@4!OTKH/^$^\42?>U:X_ */
MZ5$JU.+U4OO*4*S6CC]QE^,/AO'X9>!VBMIH)<XD\L\'TKEX-$M99-BI:H<9
M'[G.:ZW4M>U368!!J5]/<1!MP5VXS68D,"L&5,$>]<<Z]W[E['73I-+W[7*M
MOX<@DN(HS) N]@N1 .,U3AL(Y=2DM&V*(RPW",<X.*WXY-LJ,.,,#61:M_Q.
MY6/4EC^M9>UDUN;.$;EA='MP/]<WX*!2_P!DVG>27\\5;\RD,E1[27<?*NQ3
M?1[!B-_FM@Y'SU5G\-Z+.X::U:0C@;I#6FTG-,:2IYY=R[(R?^$5\._Q:6C?
M5B:</#7AY>FD6_XKFM$N:;O-'/+N*R*:Z'HD?W-)M1_VS%3II>DA /[,MO\
MOT*<7-/5SMHYI=Q678VKW<;^<YZN:K[3CK116<MRX[(7:P[BG%N***0Q/.]C
M5.74XH\[D<_3%%%4#,R;Q#9H"6@E/T _QK)F\9:7$0?L=P?P7_&BBM(F3.1U
MSQ?X9DNY%N/#/VLRIM8RL%_E7!+I7G1R6\,<:Q.WF*7<EE7KMSCTXHHKUL-\
M)Y]7<]7TE_%HMH+?3K70;6UC4*J8?('UVUHWWB35=,\N.\L+1Y2NXF&9MN?Q
M6BBN:KN=,-BM#XOOKC:5L8$!Z_O"3_*MJUU:YFG\IXHQGNN:**YF:HW(59X5
MFW'GM6=!&1JS\]VHHK)=33L:.QO44FUO4445!8TJW3=33&WJ***!,B*GUII5
4O[U%%,@:5/K4D:MM^]WHHI#/_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>18
<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" #] , # 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
M@5.*PDC>)]/7.K6^K6<5_:Y$<HSAN"#WK+9\''2E\'K'J/PYT:<*JR1P>2Y
MQRI*\^_%-F41N5/.*A&A3N3E&]Q7F'B92+P\9KU"<CRRV/E'<]*\R\4ZGI)N
M2O\ :EIYB_>19 S#ZA<TDM1,Y)@2"*=IC&*62(]*RO$WB"V\/Z!;ZU]GFO;>
MXE:%-GR ,/4GIT]*WO! M-?U*TGF@_T>:)9=H<YY .,U:BV0Y(FMY1%,Z;L<
MY%;]C8ZK<>9<6^G7,MNJ[GD6([5 YSGI7K>DZ-H=BRM::5:QOC[YC#-^9R:Z
M"^W3:/>PDY#V\BX_X":?(3S'S)J65:0=LFN/U 9)-=??@LA([\US%W"[$^M)
M"9SKKSTJA<7+6L4:J< M)_Z%6XT14G<M8^J0VOV.%HY':X%Q,KH1\JKP1@_C
MTK3<E%%M2E/<T@O9F]:A\OVJ18Z?*@N2+=7'G1X;'SK_ #IEO?7TFJK8ZA)
M8ID9HIT3:T>WG:V,9SP,G)Z5+#;LUQ'@<;QG\ZC%G,=8CGV?NHXF7)]21_04
M:#+J;CR37O7PQC:/P+"QZ/-*?_'L?TKPQ8CQ7O?@!?*\!:<O][S&_-S0A,[6
MV W$US]U(&UR[^;&'Q^0 K<MCS7GMQKTD6KWS3:5.T8G<"2)@X(W$9P*JY)U
MJGY?O T])/WB_6N8C\5Z3D+,\UNWI)"0*O6^L:9-*OEZA"<GNVW^= %SX@:6
MFJ:;=6[CE7WH?1AWKQ..ZO;&5H9?W@4X(;K^=?1&O())KA?4FO%_$>F;;AI4
M7D4K%/0ZSPY\7HO#?AJ72XM%EO)#,98R\P1$!49!X)/()_&L#6/BOXNU%C]C
M6STT,P'[J+>V/3<^?Y5Q9&*C98Y&CBDZ%UZ'!^\*2@D3*<N5D.O:CKVL74#7
M>O7C[LH5>0LASR/ER!4=MI\UC;1M^[9I@6W'@L <9P.G.?RI-0:.&%KJ8LEM
M;O\ ,^,DG/"@=R2/ZUTEIX5UJ:,7EW"MC:8R)+EQ"I'8 N1G\,U21-[F,UG]
MNB$%U&'A!R%9MR@^H'K7H_@6%AJ1E"<< <5F>';'2]1TR*^AW-N)5HW&'B<'
M#*P[$&O0]!MX;<?NHPOTIE'H-E)PE;T7[R(I_>!7\ZY>S9LK@9KI+5B-A/J*
MDH^;+R/&],<KQ^58,]N68UUVIP>7J=Y&?X)I%_)S61+&M8EG-O9M6)>V0D!W
MG&V9_P"E=C(B\XKF-91@AV''^D-G\44T7 R#:6R=2#28MT^ZN?PIGEMW-)M
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
M/HS2-)D, N9%PS_=![#UK2-BXS\M<=X3^+.C:]<P:==VLFG7TQ"(H_>1NW8
MCD?B*]%,AZ55C#<R$@-3I$P8(HRY_2I$+*Y51EOY5U'A?PS<ZU<[\,EJI_>3
MD=?8>_\ *F!!H'AN\U2?R[=/ES^\E;HO^?2O6=(T>ST6S$%NN6/WY#U<_P">
MU6[*RMM/MDM;6,1QH.@[^YJY0#=PHHHJB0HHHH **** "H)K6VN5VW%O'*/1
MU!J>LS4-<TW2T+7=TJL/X <F@"A=>$-#N@?]$,+>L3%?TZ5R^J>"=/L4\Y=6
M%NH/ N%!S],<G\JAUSXD>6&CL0L"_P!]N6_P_G7EVJ^)[O4+PR/=339/KC/U
M/7^53H:),NW2AM1FRH/SFH'C52=JBK,__(3F'^V:85W$U(BH<8^[^1-(53H0
MV,>N:Y+XEQ:FOAB.ZL&<PV\H>ZC0D%D]3CL#_.N:?5%T_0+?Q!X>\0 6\KB%
MK.Z3.R3&2I(Z?4CFG81Z9;V5M;VAM8@RP\_+DMP>O.<UR_C?2PW@V&TL83,T
M$T:Q+R64=.]5+#X@1BUD;6=/>&6-"P>U994E]N#D$^_%:K>(-(USPY-<:7J4
M!G\II8XG<+(DBC(!4G.<BE8#4\'VMSI_A?3K6ZM_+F5#YD9X())ZBM+4M'T7
M6K%K+6-'CNX"2<-&,J?4$<@_2K%I*MU;6U\9%*-$DC2=!C:#GVKSC6?C7H]O
MI\RZ#:33:EOPBW,8$8&>6.#S]/>G8#+_ +%^'/P[^(=C>7&H:G*(BTRVNW>;
M=MIV9Z;AD@\\_6NP;XJ^"V4"*\N=V>K6S8%>"WEWJ&O:I-JFH3*T\[&1L#N?
MZ=JEAL ?X_RJ[ ?1_A_Q_P##JYO<ZIKDUM;K\Q'V9RTI],@<5Z]I?Q>^&3_9
M]/L->BA!(CCC,+J,DX Z>M?%%I;V\14O$K_4FMZVUM=+<7%MI=EYL9#*SQ[L
M$<@\U5A7N?H'17@^E^,-8GTVTO/M 1IX4E(7( +*">];4'C?6$ZS!A[D_P!<
MU(6/7J*\SA\?:@,>9"C_ $(_PJXOQ"XPUG\W^?>@+'H%%<7'\0M-*[I(7'O5
M#4/B)\K)IMCR!]^0Y_("I"S.^9E12S,%4=23@"N?U/QAI&GJP67[1(.R'C\Z
M\GUCQ1KE\3YBSR>QX _"N3N9]2G)\X2@>@%.Y5CT'7/B1=3;HX9?*3^Y%U_.
MO/+[5[F\F,K$ELY#.=Q'T["J;*5SN4C\*B9AS4E#9&:1MTC%CZDYIJK\Z_6E
MW#VI5^\/K0!V%['MOI6QR6)ZU"A.>8V_"KMYEYG<]0V:AC WTA%:8*T;*8R0
M1@AAP1[UY#XI\ WFG/<ZGX:MOM%E,,W6FGD8ZY4=>.V.1VKVJ:'=&=HK/5#%
M-DXIDL^;=)U"QL)V:?2X]7TT_P"MMI_EN+?U*L,''OT]0*T]3\$Z/J6D)K'@
MF^GU'S)5C:Q=-TT3,>.@Z#U/'O7IWBWP%I?B&3[=9XTW4^OGQC"R'_: _F.?
MK7D=YI/BWP5JJWRQRVSH>+JV.4<?4<?@<59)3TCPKXBUFSU"WTRY7[=:(WGZ
M4TSQ7!4==J'A_IFN9VB,HK HQ!.".M>E7WB&+Q=]CU,31:1XHLC\MVIV+< =
M,G^%O9N"#C/:NKO? MCXV^&\6L:+HL.F:_8EENK6 '$[ <A>3U^\/J15 <1H
MB>%VT73$OXXC=-,1<?-(K%#DYR.!CCUSFM>TT7PW=PVLGVQK1IH1(ZBZ4[)"
M1\F",\9/Y5S4GP\\?6R!Y/#-R!U^4 D?K61=:?KNFS>5?:9=6T@'1U(H [&Z
MT5;*WM9O[1B8RH=^2,1R;A\AP3@[2#]<BH)+)6'EM=QJQ)4G:V!QD$^F17'"
M[N4P&608[$5?L)]2U2]M],LUDFN)WV11C^)C3 ^I/!/B[X:WGAW0]*UB<V5[
M%IJM<7 D*QAD.PYSP,@ Y]Z[G7/"^B0^'Y]7T/5OM2P;69/-5P02.XZ'G->*
M?#?X<6-EXDFO/&E[%%9)!Y2PQ,7WG'J 0.?Y5['KUWX5T_09;'P[<1SF\8;U
MB7&U1U)Z?2BT; <M#,GE?,WS>G>A9&>3:&QFJ$DB# W%1Z 5+9LK3C:Q)ST(
MQ611?2/* U8@4>:JAN366T^"5\W;CMBIM.<MJ";6\P\_*.]!5[FZ+?<X:K/V
M:+:-T:GGTIJM)Q_H\N<CL#_6K;-\@_T>8<C^"@2,^]L;=;1Y%@4,!UQ6-)9V
MK1;C;H3_ +M=1=M&UG*ICE'RGK&:YH2Q^4$9QNXXH*,*2*QR1):H#[9%11V>
MG2R#$<B<_P +U/-9333Y7A/6I8-/,,P_><''6I&;-R-MZ\8Z$G/%,2.V\X><
MJ?=[KWS6G?1H;B7(^;);.WIQ67I[[W+,QSMS]W/>@DM"*P88!0?F*I?9(7O9
M(Q< (%!!S6U&PQ_K#_W[-.$7S2RYSD=?+-,1E?V;#C_CZ0_B*KSZ:NU0'BE5
MF"LFT-P?45T;1GRRJOM)[^6>*UM)UQ=%M?)MM/A=V.9)7#;G/J?\*8CRS5OA
M+X;U3<UK!!IU[(0%N(A\J\C.5!P>,UV^EZ%I^C6:V.F'[-"IZ KECTR3W-=B
MOC0M(BMIT/S'&<'C]*KW'CRPM]WG6=L,'&,<G]*!&/\ 9V XO/SVU5:%1#NN
M+B+RQT,B*16E/XZL;E,1OIMGGN8O,;^6!^M8W]KZ*SF:6\LGE?[S,AR:H1S^
MJW7AZ/*R6EA<OZ&U0US?]HZ8EPDD>AVH$1S& JKM]P .*[R;4=!8'$U@?I'_
M /6K*EO-'\[Y7M,9[*,?RH YV37EDD8FS(!_A5N*%U:W[V<G_?0KK]/;29I2
M/)MI!G_GCG^E=7;V.CO%\NCV;GU>,(/U%)E'DC:I:MUMIOS%+#JEK',KI',"
M#Z#_ !KT:^L=)A4>=96$8SR(U!;\R,?I52"Z\&V[ OX8^V-_>><8_(*!2 X=
MM0M9)F8+,,GIM!_K6AI=UMU"*2*VN)#G&W9C/YFO0E\0>#(4.[PS8PJI*]5'
M]*B/B_P.CY708-P[JV/Z4K#N,MVN&0$6>UO1Y!_3-6)$U)H2=J1J.?DP3^9_
MPIZ>,/")/RZ2J_\ ;8U%<>+-):-A:6=J..DDDK?RI@0WEK,T;>;;R3<?QSY_
M08%<KOV1G9'@?@*UK[5M0NT/DW5I;*?^>44F?S8FN.N%O%$N_4%49/+)[U(R
MWJMQ<QS1QV\+Y=,_+'OY^N<50M6UQI!_H]PS,WRJ BX^O-5+746DFDLUU5-Z
M_>01[CQ]*ZG3(K:-Q)<7E\V_&X0Q1IG\6S3N,MZI(UOJ,[3;HHW?:@(]:R8;
MA%A9@'4XZXSQ6G<:-J3:I<3/>!DD?S$5@6V@<XY^M926,UQN6&0QMY2E3V!W
M&D29\>NQ7]RMGI]YF0L>"H__ %UUNDP:A)8[6A:=E;#LH'Y<XKBM5^'.JZZ%
M/_"1RV)#DJL$0  /^V,,6]\CTKJ/#7@NXT'PVFDW&I2ZH\;,RW$RX90?X0>2
M1WY)/-,1V6^S51N\,O\ 5KQ161/KFAQL^WP^6D'&/M38S^6*8=!X^[^E-.CX
MZ@T:@S*N-16[NT$-C]G5F"K&&W 'W)Y-+/-)8W+VMS;1O)&<$[!_A6M'I86Y
MMSLZ2*:VM6TL3ZW<2*."U4@.8MIVN%S';6J#_IJZ1_S%6EB^3YIM.0^GFJ?Z
M5LKH*L,D&FCP_%Y?W.Y_G2),2>06D/FI!8:@^>(A)_AC^=+!JUN8PTOA2Q\W
MVW''_CU:<NBJO1?TJA-#;V<A$OWF( 4=: )EUF/_ *%FT ^C?_%4T:GY[E1H
M]A;_ .V\;''_ (\:LZ?''<3-$L9!! R_2MN;P+?7J"2VO[:-7QG*,2/Y4%'!
M:E#$[F0ZI&I_N00LH_E6(SRQ\+).W/4,*[W4?AO=0PO+)XB@R/X4MCG_ -"K
MD9[/^R0R27"S9;"EEVY)/ H AMQ.^XJTC8;D%N_Y5HQWEQ!@"QM']Y(MY_4U
MKZ=;6Y24R/&A?8X#,!U0&IYK.VVDB1"?9A0!05[NX^40P(/]B!5_I5V#1KAT
M]*V;"S7"G;Z5TMK:IM'%%@N<2NB9@5W9LD \"N#UZUOX[G4;6QE5;I<K$[]%
M)4$'\,U[E';(UG'QVQ7F&N6R?\)7>C'.Y?\ T$4F,\P\(Z)XZL_M-U>26FZ4
M^9YC[&>1R?F' (P>N2,UWVGPZG) G]J)"MQO.1!]W';\:V=*2W&GJLDB(P)X
M9@#5H?95E7,\0&?[XH UF1'F7 _Y9-_(5SNBQQO.T9^]Y ./^!FM^.96GP#D
MB-@?R%8VAMB5_P#KB/\ T(TAG16]N@P,5#)J3#5)]+M=.:YFBB60XD"Y!XXS
M3UN%1<ENE>;ZEX\T_2O'%_)-=/ ! L.8E#.6Z^_&*;TL!Z@O]J-'NET^"U[*
M))MQ/_?(K'UV]U+2]*-^/L3@2(A0(W1FQUS7!R_%?1]GRS:E+QU4A<_^.URV
MN_%;3+RW73E@U!':1&$DEPS@$'/3.*3?8D^@6@19(B/[XJ[M62YE?K\YK@-'
M\6:AJ&LVUI<1VD<+/SL8E^A[=J[JVDW!F]7-6G<#011BHU5?+/\ O,/UI5D&
M*H1(1J%Q=>>Y5AY8BS\HPQ.[ZG/Z52)'7> F%Z^M<EJ4(^U%NO*'^==7,V17
M/:D/WQ^B'_QXT@,NX\0:7X?NE.I3&+SMHCY W'TYK:@^)FCVR;0D[$?[0%<+
MXN59;ZR3(!,9/3T-<%-J$BK)L495]O/UJ"TKGKUY\1M%9)FL=-56F<F1D;F1
M_5N.M<5J?BM;R3_CQ0C<&&<G!'2N0FDU#[.9-XC4]PHZUSJWFI75[#$+IVC=
MAD8 RN1FDF-^9WGB&\:_MM.NIHE$GDB/CT&0/Y5D1SB,@^4G!STK5\0)'#8:
M8JC"" ?H[5SK3+L/-85&^8VA:Q],Z6_F6D$G]Y%/Z5N65S#-$)()5D3)7<IR
M,@X(_.N3\.W'F^'-.ES]ZW0_I706*Q0PE(5VJ69R/<G)_4UU=##J7X7_ -&V
M^C,/_'C7G&NI_P 5E>#L5C;]"*[V"3B9?25O\:XCQ",>+V/3?;H?R/\ ]>I
M\H^):20Z69H7:.18V 9#@C#9_K7A:ZMJZ:I"S:I=>7YB94RL<\C-?0?Q*AWZ
M1*H!R1(HP,GE0:^<[F"]BF0_8YFR0<-&PZ?A4=2C[*L[AEU.=6;CD"H=,D9)
M6';R\?\ CU0PLS:K+\V.:?:1;;E\-_ >WO5")-7OC%82JIY*FO'Y?#<?B+Q0
M5$THFEC&%5PJX5![5Z1K;-]G?YNU<.NF3-9I)!?- R;\,JX;D;>H(/2AB*'B
M7PJ/"^F6<OD07+W$QB*O(?E&,YSQFN:M+.WFU.!;C2[0AY,9"$_3DGK7375B
MRNK37#3>SY;^9-96H7<-B$Q:+(5;>"2!S^5)M >EZ&T::]:.J_.SX9BQ]/3I
M7JEM<[1@]#S7E^AZ6JW\5Y',XP1A&);'XDUZ7H<%O?:@]O<QEA'"K AB"<DC
M'Z41T06+4FI6\#HLLP0R'"@]S56+6=.2_DLY-0M4G,I C:90Q_#.:YKX@>(M
M&T_2+[3V\/.Y$,B":*\\M@"NT_P'M7B7A,Z7=Z9;:Q8Z'96%RJ%/,5-SD<CK
MQ_*K3)9]):Q<6TFF7-NNJ1VDKH5657&8SZUR:WMK9VSP-JCZB[,6\S:6(RV=
MOX5FZ7X3OM8M&;^WC;?+G"6X/\VKG]<CN-'TEKN34+B[*JIV9$8)SC/ IW&:
M'BVX\R>TFL\2.D9W9. H)XS7GLL%U*9!]KMHRS%AC<W?/I6KH\^I:XX6WN(+
M,G(WO$TS8/;EP/TKL[SPY'X9\-Q7TDL5_=O<*A=H B@,>PR<?GS4V&M#SO2]
M2TVZO+2QO;R6XBN,O&(5\L2A<YPQSQP><5T%YH^F23+<6%E<6D*<@O,7)_\
M'<5ZSH/AG2YKJ]A:UA'DSLJ;(@@48' "X K9@T'3V^[;Q#ZQ@_SHL%SR33;G
M3IH+3^U/F @92J@DAO,) P/8TEY_8'S*^B2 ^6S_ +Z#:1C@'H#CU/:O2M:\
M/6^I0V[&4P&RD%PGE*!DCL?:H-4T73=2DGU"]@,LEM"\0&X@,K=0:&@3L4-!
MN=0@T>)(],/V9(QY!#J RXSZFM30?$DFIVC74-J@@$GEL&<AE.<'M0S1:?:Q
MVMO#B*&,*B[N@ X%8!U6:,W,-O%% C '"KT/K0(]'C_UUPH_O _^.BN1\3)M
M\1VLG]^W8?DPJ2QURZ:\DWJIW!<XXI/$#&;4-/=N#L>@HX;QC9W-ZD45I;R7
M$OF*VR-2QQCDX%<=):W=J0MS#<1$-GYXV7^8KURVMUF\1Q))\R^2>,5NQV"M
4<*BS2H,] [8_+-9RAS&D9<I__]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>19
<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" "L /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#V*^%\+Z8+
MJ-THW=-X./S%0?\ $R[:I<?CM/\ 2MJ\A'VZ4GCGO7D7B#Q_.U_/;Z1=""WA
M8KYJKDMCOSVS7-.:CN;4X.;T/02-3)_Y"#D^\:G^E)OU9?NWY_&/_ UX3<>,
M?$,+>?#XBF7<0&8@89?4?RKIM'^(NO:+<6A\81))I=XFZ&Z^520.XQUQW!J(
MU+FDJ31Z@UUKF#MOAGZ,/ZU5L;WQ(UE$UQJ&Z7&&*N0"0>O(-+IGBKPUK,T<
M6GZ@LC3'$601O^E:MI;_ +EUQ]R1U_6K33V,VFMRC_:&O+_R\,?^!K_5:3^U
MM='5B?P4_P"%:AM^.E1FW]J8&?\ VUK(^\A/_ /\&IZ^(+]3^\@?'^ZP_H:M
M_9_:C[-4@1)XD9KF&%HY%,KA 03P3]5%:[K=8.)WK.C@VW$+'IYB_P ZZB6W
M'/I2'<YN7[8/^7A_SK'U*UN+V!H9;J=5/]R0J?TKKI(.3Q5*:V')Q4ZE(Y.Q
MCO+>_A@2[G*+&P :0FL[P]/J3:A=;[Z=QYAP&<G')KK[>V7^V$7^((V1Z<9K
M"\/V_P#I]Q_UT;_T(T7&=[I+7/R[I2?K756\DI ^8?\ ?(_PK TV/"CBNAA
M4"K,V3222*O5?^^15":YEYPP_P"^15B9Z\W^(>N3V<"Z1'B&.ZCW2S%L97)!
M7VZ<FFE=DFOK7B-;:(V]OJ$/VN3A50JS#UP/6O(=<U+6M1B,,6MW44B2'<L.
M[<5_O9"D>V*XK3]>L+A[[3-,O))+%)"(VN5.P'LR#.<@C'\ZP_%NL7OFPR-]
MK)4>6&9F3S!W(;ICZ5UQA9&;D=<NESQF1KGQ;K#RIRQGO98UYZ8PXXQWJ!M4
MTZS"BX\50H@.6:35G<M[??S7,1^,KZW\/:;INV&>]1"K*")F1B3@#/)(R.:Z
M[2EG;2F;5/#<$]YD*AN;%8]RXY)'4FN:K65)7D>G@L'4Q-11@O\ (OZ;XH=;
M&?[#?/?VQ/[N6VF:0,WH=V,8]B:VO"^M:M=:XK/_ &C'$BL6:;_5G/3')K(M
MX]8$*Q6ZV]A".D=O B!?I3)OLT:M_:VJ,WM->8&/ID5YSQE_AB?3QRJ,=:TT
MO0]8?Q39V(S<ZQ#'_LLXS4+?$O2HXV:&2XN]O4PPDC\\8KQ:X\1>#]+&5U:U
MA8?\\8@[?F:QKKXJ>&K9E,;WM]LS@'Y5/UQUJ/:UI_"AK"X6.LIW]78]DN/C
M%:PDK#:C(_YZRHM5;?XQ3/-@V\$R9X\J52:^?]0^)FC7Y*+IL<,0.1$T:-]<
M%>:R9/$5G>KML/#-S)(3]^,,!^IQ4\F(D]&-SP-.-I*[\M3ZWL_B]I,C!;SS
M;5O]I!C^5=+'\0O#K1*W]K1\CVKXKM[SQKLVV6E?9$/0W$_3\#4WD>/&^;^U
MM.3/\/FGC]:ZHT\0MVCR*\\.Y?NXNWR/LS6K::XMK^WMG"3RPND;'H&*X!_.
MOCF]T_7Q/);27EO:)&Q/FR$DMCT R?Y5]G7P9IIU0X<J0I]#CBOD35M"\363
M/-JFDWMM&\A(FGMW1'YX^9A@UT5-.AXE%7TN9%]X4U-M)^WR7WV@[0ZM,P52
MG<[,[L>]9FBZ@LKII]U;B2=08P22P*YZ*.PKO?[*U/4%T-X9$5+!@+F(N$=U
MR,L"001LR,>]2Z]X*AEA_M7PZ9+?5[9A-;]-K8YV'^GY5C[5?#(]+V+7O);'
MH&@V.DS>&[6,6JVCP899(QAD8?Q"O4=-82Q2ON#EF#%AT.5!S^=>#Z3X]CU#
MP\E_%I;&X1O(NX$.##-TQCK@]1_]:O;?#OVI=.A%Y$(9WMX9&C4Y"Y!XSWZ"
MHPZDI-,G%\CA%Q-9D]JC,8J=C3*[#RB+RQ1Y8J6B@""1-JJWHZG]:Z>1.37.
M3?ZACZ8/ZUTQ.Y0:D"C)%562'CI6DX%0L%[T#N8MK9+'JBLNXE@W+'/:L/0;
M?_3+DX_Y:-_Z$:["%5_M!/\ =;^5<9)K>F>%]*OM<UB1XK*&;8S1H7(+.0.!
M4V'<W=;\46?ABR"E?/OI /+AYQSP"Q]/8<FL33OB-KNK7 M[/3[.-@N2[EN>
M>3C)P!Z=3[5R?Q8N=!DU:REO-0E&^SBF6W$WEQN#(""V,'('.,URL/Q,\.6_
MB."8;GAM4D7=:*TGF;N H11CWS["NA17+<S;=['I.N>/M:TO2M1D:[\V2U@D
MD\PHJ#(4D< <"O%=;\<:OXR\,6E_>:FC%HE.67:TJ]77 'W23VQ^56O%'Q!M
M=7M9;>W\.WRQR?>DN9DME8=LY.<5YW'J$-S>,LEWIH*QL1"EP\A';L, #/2K
MA9:BEJ;GA;3]8N1/-9FWT_2U9F0>6&E &=P#8&,L.,^]8.L:S+YYC:QNM9G
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
M.>OK7?A_?C=G'7?+*R/K"34[>?49_L-P#,C$26\GRM]5SU%.AO5,OG6LGDS
M\I[USWB32(4OI9(R5._(*G!!]17/R7^H:?,%NMTZ_P ,HX?'OZUZ!R'K%OJT
M5UP^([@?>3L_N/>M."^D1-H821GH#7DEOKT$Y DD^<=''##\*V[3Q!- <LWG
M1GKC_/!IV$>G-.MXN+A$>)%S@#(!KA=1^$_P]U#Q/JFMZCI!NFO-A:)IW1%<
MC#,H4@\\9^G&*N6?B2,X:'8['^_U_&M%=0MYY4>20$-PV>.1VI7:V'9,73]#
M\,:''"VGZ:B^6 B-(YD9"%POWCUX'-7SJNZ5$7Y8_EW#MWS^E<_/?PK!YK/C
M#$Y/I7':KXFDVR16(\QNGWMH^F:C1:E&QXO\3:A8Z'=G0DCNM59&:"*5R%)[
M9./TKX*U5M0;6[IM3CD:^+9F69""#]#T^E?6T,VISW@DN(844YW$,6)^E8VL
M?"+0O&5_<7IU2[TV^E_>-(@$J,WNIP<?0U%.LN:PI0=CP+3/&LT$"6U_H^DZ
MI!&JJ([VS5^ ,  \$<5JR>+-/GMHHK?P[;6C+][R3\F/0#M6QXF^"?BC0]1:
MVM9+364\M9%>!O*D(/3Y6[\>IKA[G0=>TJX6"[TFZAD=@B+-$R[F)P #C!YK
ML33V,+6/6? OQ%^V)?\ @S69)9=$>W")$L9DDB!(! ;KMYZ'(%=/XH\(K?V\
M5[X>M7O8ITDE\U@NY&+$[>Q.23CBI;K0[/P+X'MI]*L]/@UR&U)OI=I:2X=4
MRP[YPWT[5ST_Q$LM:T6U^SQR6>I&-AYB9"AC].G_ -:N9U4WRQ6I=FE=['-0
MZ!XEBTM+5+2?399H3YJ!058G((+')!Y-8UK\.]=TTW#S6QE27&TKR,#)YQCF
MNHT/Q_KUU.+*2\5T@MXRSR+NW.4R02>G;\ZZ>'XAFTB'VZ!&)^ZJKP<>AK74
MPC5IN5EN<3HO@>1=L,MGY423%UA925=/]I@=W!Y%=5;^$9_+CCG\PQC%PY!#
M"252 ,_W5X]*Z_3_ !1HVLH'D@6%L]_6MB62WWK(,/Z8^^?Q]/SK)HZ$_F>;
M:EX:T[+/>6$<Z9\MG4%2S'& ,?ET'Z5P&O:5;66FI#/;_94E*M=1A0<?.,\#
MG[O'K7T!<S65P?*G\O>,'<WR%3['UZUY%\419_89_*G9,JHW2H,@>GJ:J/,F
M0U#>UCS">'P[-?/:Z;HTEQ)'^]8VY(8KZC/('K4<FL:WHL,<ML-6L8^F9)"R
MGWPW04[PK!#!<WEPE[MN;6/ #1$I(A!?!8=R550.^371Z')JVMWLVID1/;2[
M8Y+9ADJPCWYVDX( 4D]!^=#DHMWZ$J,G;E=S&A\;^+EC;[=H\6I1HH9_/MAD
M ].1US6G#XGL<.=2\&W=B5(#26<A&,^V15ZWO[74O$-K'8VY_L=86DD:UR@E
M?. !DC+'C@XJ[-HND2ZM!I2ZE-*S1R3RM=JJI$H;&UO0Y(QP/QK3F1GSR70H
MK=^$]3P%U::%MW^KOH5DP?\ @0S3SX>MI"QL)-)F8\-Y(\AS['%86O\ @F2Q
ME!D;8)2?++2*=V#Z=17)R:+<02%XI&#J><%E93Z'T/UIDJNGNCMIO"JH[/>:
M3?,"<EK>X5OZ52;PWX-=_P#2[K7+%NY:-' _05SD.I^*-/DDCM[^]!B&XHRL
M^!T[BM:+QGXFA1?MMG'=QM@Y:(CCKU_^M18V51'LOP_U[P=X5\-C0[+6DN-T
M[SM)<[H6); QPI'&!WKT*#Q!97A#6TD$V?\ GC=Q-^A8']*^7AXNT6X;&I:
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
M1,CE!]*:FR7$PO#FH-H&J+>11>;_ 'D8XS]#ZUZWIVI:!XC0FTF^R7A&7C(
M)^J]&^HKRVXL58Y48-4MDL$@8,RLIRK*<$'V-:<UR>4]:DL-4T.Z%]IUQ+82
M*<BXM6.P_P"\.JUZIX9_:#U"R@CL?'NE'48?NKJ-H0'QZL.C?I7@OA_Q]J&G
MND6I WMOTWCB11_)J]!MK7P_XEM6NM&NDMKAAEM@X!/]Z,]/KQ3N2[H^B=,U
MKPCXT*MX;\0*+MAN6W+F"Y'_  $XW?@37E'Q>E\26-Y<6\EXM[:66GGSUO%4
MM"L\@0% PR6S'U'(_.O(-7\-7VE2F:96MUW9^TPDO$3ZGNI^OYTOBGQ9J'B:
M**YUR^\_4;:"*S;RU.QX47Y78Y.YR22>/>FHJ]Q-NQZ5\.=0\0>&8[FXC\$W
M&?LL$,DUM KNX;=*'?/4LKKZ< 5ZC;_%+5%MU7_A%=7XS_RX>_\ O5\\Z!\7
M_$?A&SN=)T&-M3MGF\S[1- "9/E51\QYP%4 #MBME?VB?B<JA4L;%5'0>4./
MUJ)4>9WN<LE6O[LM/0^G;KQ%X=:Y>+_A,;*-E;!BFE6)DQQCDBK$-SI<R;K;
MQ)I;CIDW:L?T:OG_ ,1VM@VJWR3<[IW?;*-P!)YQGI]*X+4O#MB=SQVBKGON
M5<_AFN-8O6S1ZSH=F?6]Q-I=BGGS:_HZ,,X)G3)_7-<Q?>-/"-DYDOO&%F[?
MW;8>8WT&W-?*J:7#:N?+M(@3U(P3^=78[>1L'&.P JGB.R$J7=GN6K?&OPM8
MV\C:9HE[JLJ*3YMU)Y2?ER?T%<7JWCGQ1XR:2SGDCL-+ &^SM!L1S_=+'EA^
MGM7#_95\MC*.#P ?U/T%:<=_;.FV%L@')6(9/YGA1^-83JR:L:1A%"^((1=6
M$$1CWS6L@FCQ_#V8#\*XS7XM/D\.W5U)"C7<=MLC<]5Y[5T]Y<R32K@A4498
M*20 /4]_PKD-2(GT2\55+ PL>![9I4JCC9#E34[LZ73;ZUT^Q@M;:*".-%&
MN[TY)]Z[WPMJ5O>7*- Y/DS(&R,8/!KR2&0FTA?& T:G)X[5N>$=>ATN.[FN
M-_[ZZ14*(7P<=>/:J4Y2G8)THQA='UQ>KG5(_0Q_UH7@'FDNCF^MSGJAI0/E
M)X->A#8\Z6Y!(Q.<53<\U<D-49*L0HDQQ4RRDK[U6')J=%XH),+QYJ.FZ?X)
MOYM2M_M$+Q[#%C.XG@'\*\LM;:-;^W\+VMH^G7:A9[6X:<"-P%(V9Z?-G&#W
MQ]:]FUC1[+7M'GTO4%<P3#!*'#+W!!KRSQQX,N%FAO;5LQVTBS#?DC<N=K<=
M@3D@4-=2U*VB.!\7WMNU@FG^9%]HM8$6:SF"G!R69HQV89&Y3P0!UKS1=7@T
M^.5IY/\ EID@#)QM%>C>)KO0+&Q<7FC&_P!8OHPSAD=4@D_BDC<'YA]3ZY%>
M*:\@^R[@X)\PL0#SP<?X5:U0S2L?&1L]626%9(;<-E64_/"?4>ON*]CTS5-/
M\46Z0W#11WK+E&7A)QZKZ'U7\J^:E'/I7:Z1<>(;>VM)HM'NIM-CC"F2*)BI
M^8D/N X(SU]JF=-20X3<3TO4=%GM9",%E]*Q);8'H/K76:+XDM]5MX[+5Y0'
M;Y8;MN,G^Z_H??O2ZIH<D)+*FTCK[UPZQ=F=:M)7B<0T*$<@55FM%8'Y0?>N
MAFL_FQLP?6J,ELRG^E4F18YB:Q:,[EZ4Z"YNK2:.[M9I+>XCPN^-MK#T_"MY
MH>",=:IRV8)R@YZ8-:*1#CV.S\/?$QTV6OB&'S8S\IN8E[?[2=_P_*N7UO4]
M\V^-8&@2X>2*(1 (%+9P1CY@>.*QWLF5QLXYY5NOX>M.OR&:-5SCW^N*V@8R
M/8-#^&EGJ%AIZK8W%SJ%S&KM;K(V Q&2 HP !^E=U#\ =2\A/^*=3I_RTE&[
M\?GJW\#/$=YJ^G:CJD]I'%+:LEH)$/RN-NXXSR.-N>M>KMXHUMF+6ZA(C]U<
M=!6;EJ,\>UZ+;K%WYMRB#S&PLP#*>?7!Q^E<A?21[C'&+4GU1XZW-7LI_P"U
M[XPL92TK]6X!S^E<M--BX:VMU:1E.&=2=N?:O$Y=6>M?0K26^XY9@?QS3XK<
M CC\ZE953JNUN^<YJ[86YN)!L*J=I.YC@"M5=Z&9RFM_O+F*SC&0O+C.W/L<
M58M8_+C&;:($>Q./SHU"WFAN2MP=SJQR3WIT;'&5_P#0JIDDOE^?,(W^ZP.[
M;QQBJ\VAZ:^CZD1!(S+:R%27/78<5I6"EK@,W&2%'L*VY52>TFMP7 DC9,C
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
9L@/EQH%&=W7CO6O!_P >Z?2N>2-8ZG__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>20
<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" #( (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 **** "HV=8T+NP
M55&2Q. !69K6O:;X?L3>:E<"-?X4'+N?0#O7AWC+QEJGB;3KU WV2Q$3[;=6
MZ\'!8]S^@H ^@XY8YHQ)#(KH>C*<@U+7S/J-_?:7K=O);2S))+;VKL8BR*$\
ME3U!'/ZDUN67C[Q-"-T-],Z=DG D'YD$_K0![Y17D5G\5-85Q'<:(NH$<-]D
M5P__ 'R U:=Y\7/#^FZ?%=:Y9ZGHXED:("XM6)#  \J/F'!!&0,T >E45S.C
M^.?"6O0+-IFO6LJO]U9&\IC_ ,!?!_2NC5E90RL&!Z$=#0 ^BFDA02QP!W-4
M?[:TCSO)_M2U\S^[YRY_G0!H44T$, RG(/0BG4 %%%% !1110 E>?>+OB)IO
MAQVT^U87NJ9V^6IRD)()^<^O'3^5>@U\:V,K76L3S22%VEG)RQR2?FYH*.PU
M#4M0UJ]>^U"X>>5^[=%'H!V%95X'73YC@X$; GL>*UXE1(<-U Z5!>P;M&FZ
M\H:D9<N(FEUN4LOF%;>S1 .W^CI6+X@UZVT&[&G$++>[!(Z/N"QI[D#K[=3Z
MBND-PNE0ZGK30>=)!:V_D)W:06Z8'YX'XUP5S?\ _"-^&M2UC6?*O]8$ +>:
M@<>?,WRJ ?XAV]*%J2]"[XAU[5K6WA6]^(,7A:P**WV>!F1FR,C")\S''KS7
MGVN^+9)+,+;WOBC6 )-_VJXTYXHW&W'+.V2.E<O;KXTU#Q!]GLY(DN[\GS+V
M(!YE7NJ.>5'^[C/KBO1M!^'>H317%G)=2Z?:0X_M#4+J5IYI">?+4$XSCD@8
M R,^A=Q6,G0=8\+:A:I;>(5U'2+]Y2(;R",R(W3Y2H/3]>:]8T'0?&VFW[+)
MXC6/3P-\5S:NZ.X/(&SC'T;I6YX;\&>%_#.+G2[#==NN?M=P=\I'MV7\ *W7
MF5Y@N[.30F.P7NIZI+9)97%_//&HY\UN6^N,9K%,)=N>:S8[;4M,\1WZ7&I/
M-:7,AE6%_F6,G^X<YQGM716\0< ]:2=QV+^A:QJ.BR*(G:>TS\]NQXQ_L^AK
MT^SNX;RTCN+=]\4@RI_H?>O,4@Z<5U/A6X:*>2Q9ODD'F(/1AU_,?R-4!V=%
M%%!(4444 %?&&@>8^L22,N(S=%5]^&K[/KX]TH;;R,9'%X<^_#5(T=NML-I8
M]"M)?0_\2>8;?X#5^-?,C HOE4:3-QGY2/TH&8%Y%<:KXIN;)7Q:Z;I]O(5S
MP7,*G/\ *O&?BY=3:+IFEZ=)Q<W$LE]*,]3PD?Y#?^=>\P1*[^*[I?O6IL&D
M0$@NA@0#D$=/K^>*^7OBEJDNN>.-,EG;<AB"\>SM20'5?";4(]'L-5U^X437
MB[+>V#\X)&3_ .R_K7K=[XFMO"_AJ.YO'S'"R"1CR7D<Y9O<DFO#]#D6'2TB
M4;46]4GZ?+7I?B;PW-XO\+W6BVMPD-XQ6:W:0X4R*<J#[&HEOJ4CKM1\73-*
MT<'R<=:ET>_EN9H_,E)\WY2<]">*PCH-^%ADO(3#*R#S$SG:V.1D=><UNZ?8
MQ6\8?)WUO>*V,]3&T_Q-]GTF'_A*IDMI+-BAN)LH) &VG)/5L;3QUS5 ?&K2
M=*TN.VCLY]7U.ZNI!;3*!%:^5_",]3CGMFN+^/-M=_9X[Q(YI[742L<90 K;
MSKC>#W^95&!W_"N!\&_"?QUKTC7FF:<+2&TD3S+B\<1!&897Y3\QR!G@5$59
ME-W/IWX<?$C_ (3*\N]+U"T@MKZ!3(A@)V2*#AA@\@C(^H->JZ2WEZU9E>/W
MF/S!']:\B^'?P];P?>SZMJ.HPWFH2Q>4JVZ%8X@<%NO))P*];\.JUUKL)QE8
M<R,>W3 _4U; ]!HHHI$A1110 5\?Z6H^V0^]XQ^G#5]@5\BZ<H%[!C_G\;\/
ME:@#T&%?W(:G72;K*;G V-_*B%,VX%.N?ET^X/I&W\JDHJZ=9LOC[7K&:2.+
M3]8TJUA#LX!$PA4KQW^[7RG\2-'N],-M?2Q,)-.OGM9U/523N&?R:OIKQ]I]
MT+.+7M-0M<Z<+:5@O4Q^0NZN4U_2]-\9V5U]IPJ:I;JMQ*HSM<#]W-]00,_C
M2N*QY+8ZQI^K%M/L+..S2>,2PD'<S2*.1GW'./\ 9KT_0=42XTB"]:79+!\L
MPS@ICO7SJ=,UOPYK,NDWL;6]S:R90^A!X9?4=_QKUGPYK<;-'J&EW")?[<75
MI)]Q^Q_ ]CVZ&HJ.^HUH?0-K&-0LTD#>9D=>M0S6)CXQ7*:+K\T0%Q#:W4*C
MEXQ&9(P?4,H(_/%=99^)!KM\EG!9SW5R_&V.U=,>Y;&T#WJ(LIE)K9&B>&:%
M9H7QN1AW'0CT(]:GTF%K&.]C2=IUN9EEV[,% %V@<=>_-<GXI\8W&EO)#IEC
M%<S&Z^RQ,9"RR.!\V,=<94?C7N?P_AMY/#Y%U'#)J%K((;F55X,NU2P'L"VW
M\*V7<DY:PL]2U*81V=G+)G^(KA1[DFO2-!T9='L2C,)+B3F1QT]@/85N459(
M4444 %%%% "5\GV<6V[MFV\?:FZ_1J^L*^6HLM-:^HN#_(T#1VEN/D&>F*6[
M7.G3\8!C;![=*(&S&%4@,1Q3KM@NGR*<D>6>?PJ1D'BSQ-:^%?"6MZW=6+W\
M5G:6H-NA W[HD49/8<\GL*\9\(7TVJZ0^I6^G;M%NY)(8('<,()E/*!B,,IS
ME<C]:]IGO-*NM;OM$N'BN'N;:W1H'3<K_N%RASP3CG%)#I>GVFE?V7!I\%OI
MZJ5%K%&$10>V!W]_6LF!XUXHMM)\5Z.@C:&/5;=0OSJ=DF!@9QRI'3(Y]<]*
M\.NM"\5VFJF.UT74'NT.5,$;3 ^X*#D?E7T/XB^']Y'=/?:"Q=\_<8]?KZ_7
MK]:Y"ZEUW194O)8=0T:]C/R7%LQX/U'./K5*PM3+L-4^(FD>&;.^FM+K3;L.
M?.GU4+:P%.VW<0[-TZ UZ%X;\6^-_&&G/H%CJ4]PKC=?ZFJ-'##%C!5,_,1]
M3ECT K'TGQ?:QZC-=ZK#'XCN;AU>4W%A'+))P.DA&5.<\5T]SX@\;^(T_L[2
MK>V\,:(QR(K:(1LP]6(Y)H&9J0JGC*"&R54;3E^S:? ^#]G[M,_JW);ZX':O
MH#X0QB+PKJ$08MLU"09)R3\J\FOFW4OAR9-:T;4M-U8VYLI-US)*I=Y3N#;D
M(Z'C;]":^C_@ZQ;PUJI/7^TI/_05JD2>E44458!1110 4444 %?*UGN^T09Z
M_:CG\FKZIKY6LB?-A., 71P/3AJ .X@487'XYIUTI>VD&[C:<_2BV(\GKVI)
M6 M94!YP:DHA?PSI<GC>364B=;B.*V9LMA2QA7YJVYX59MRKC'))[4F6&L7@
MVM@P6N,=/]2M23.T:E?+)Y]?TK)[@C(NH61RQ;('0@\_2L:9.0LB!N>G7%=5
M*JR EE&,=!UK/DLV^^<;1W-0,YU;<-)M^XO=5XJ<0*BX )]L8K5:%%8E?<\U
M#)M"C:/N\\U0&-<1@0LI# 9YV]?PKTSX1^4/#-ZL.<"YPQ.=Q;8N<Y[UYW<.
M>K<#I@5Z!\'\#1-:QT_M!C_XXM:1)9Z71116@@HHHH **** "OEBS^=SCJMT
M<GZYKZGKY9T\J+V=0-P\\G^= T=I9'=!S4$\4K+,5;&0<U)9NHBZ8.>/2K$X
MVQ2D<Y4U(S5C$G]KW3K@I]GM,8[_ +D5-*@W^I_K26JC[;.[=#;VI'_?D4V[
M;/\ J^N<$ XK%[C1$VTDC&2>@Z8JJ^<CMC/(/:I)/F ;^+&/QJ(28X*\^M %
M9HG4$'DFFO;_ +C;MY]15N28*.%/2HUG(7G@'C)H YV\##EE&01CUQ7H/PB7
M;I.LK_T_$_\ CHKB]49"P8KD$]3P:['X0G_B7:XO87O?_<%7'<3/3:***U)"
MBBB@ HHHH *^4M,).IW*_P#3<\'OR:^K:^3M.DVZU<JQ_P"6S<_B:!H[%9/+
MCW=@:GDNC);MM[CFLQY"SX[=:'FVVQVG&2!G\:DH["$LTLVWY2+:T!QW!A%6
MO+'D'YMTJMGCO5&U*^9)U8FUM#[_ .J%6EEBB+*QVY.<XK)[C*S85QN&,]<=
MJB>1>V>M7F*\LB C;^%9\F58[1SGD"D!'Y^XGY<@=<U#,>C(<YZBFM.C(2&
M([>M)"T5R"B\G\J *VJA6@7(R,?E77_"-=MCKG!&;P'G_<'^%<9JP$4&U3N!
M;H37;?":0/9ZR!CBX7I]#5QW)9Z51116I(4444 %%%% !7Q_;S?\3JY;&S_2
M'ROIR>*^P*^*H9_^)[=+G ^TOCVY-)C1W2RN\,C \@=3[U(2O]G39.[:N[(_
M.J%O)F+YC@&IKF95TB<="87/'T-26=OIDF[$GW@;&S8<]3Y-%[<$L>YP.*R=
M,NMT%N$Z'3+!LCM^X'6KDT<DDJ11L">Y!Y!K-[@AYN6*G=\HSC@X H:=2OWC
MN]NY/6JMU'Y4>%._!Z^M5%N&<+V..,G %(9-(HV[ER,'@46#$,S$9(JJUQEB
MK$$@YJFUXT+''(ZXS0!9UB;*RR,V !G [5V7P3E:6PUTMS_I*<_\!->6:]KE
ME!;XN;B*U$[".,22!=['L,GK7IOP-7&E:T?[T\9_0U<2&>P4445J2%%%% !1
M110 5\BZAX'\4:3KEY->Z-<K&UP[K(D99",DYW#BOKJBI ^38O,:,!4;(X/M
M3+R0II%WO)#B%P!_P$U]07^@Z/J9+7VF6\[_ -]D ;_OH<UQNK?"/PSJ-M/'
M;2W=BTJLN4D\Q1GKPV3^M%BKGS]XIU_Q!I_@Y;[PM:-<7(TZRM\J"[JXA0%@
MF/FQN^O>M7P'K/B"Z\'6EYXB+B_9G7=)'L=HP?D9E'1B/I7L=E\(-$MD3SM6
MU&9EC2(%&C0;44*O\/8 #/6H]8^#NEWD"#2]8U"QF7.YFF9U<'U (Q^%)JX)
MGG]WJH/RO.J9'4GD56;4K*%-[742J!T##GTKLK#X)VL-D]OJ$UI?S[RRW,BR
M%L''RD%B#C^M=YH7@7P[H>FQ6O\ 8^G3RIDM.;- Q)/T)_6ERAS'@3:]I4LH
M\N\1WS\R)EOITI\C75T,6.CZI.3_ !16<C#]!7U%#:V]N-MO;Q0CT1 O\JGI
M\H7/C;Q1\+?%7C)K!E\/ZO +5B2IA"+,IP2#OQ@\#GZU[]\*]!UK0],U!=6T
MQM.,SH8XF=&/ .?N$X'(Z\UZ715)6)"BBBF 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
/ %%%% !1110 4444 ?_9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775573536136">
<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, 2021</div></th>
<th class="th"><div>Mar. 14, 2022</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well Known Seasoned Issuer</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2021<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2021<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="top.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,732,705<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="top.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">$ 29,763,900<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">Somerset, New Jersey<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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>22
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775574363944">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashEquivalentsAtCarryingValue', window );">Cash and Cash Equivalents</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts Receivable - net</a></td>
<td class="nump">1,964,776<span></span>
</td>
<td class="nump">3,716,701<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="top.Show.showAR( this, 'defref_us-gaap_OtherReceivablesNetCurrent', window );">Other Receivables</a></td>
<td class="nump">235,904<span></span>
</td>
<td class="nump">198,951<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="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories (Note 3)</a></td>
<td class="nump">4,743,280<span></span>
</td>
<td class="nump">3,781,515<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="top.Show.showAR( this, 'defref_us-gaap_DepositsAssetsCurrent', window );">Vendor Deposits (Note 4)</a></td>
<td class="nump">288,586<span></span>
</td>
<td class="nump">388,712<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="top.Show.showAR( this, 'defref_us-gaap_PrepaidExpenseCurrent', window );">Prepaid Expenses</a></td>
<td class="nump">343,573<span></span>
</td>
<td class="nump">421,305<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total Current Assets</a></td>
<td class="nump">12,893,562<span></span>
</td>
<td class="nump">13,706,027<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and Equipment - net (Note 5)</a></td>
<td class="nump">1,488,319<span></span>
</td>
<td class="nump">1,298,103<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets - net (Note 6)</a></td>
<td class="nump">956,284<span></span>
</td>
<td class="nump">722,916<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease - Right of Use Asset (Note - 7)</a></td>
<td class="nump">583,271<span></span>
</td>
<td class="nump">631,527<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="top.Show.showAR( this, 'defref_us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers', window );">Capitalized Software Development Costs - net (Note 8)</a></td>
<td class="nump">10,476<span></span>
</td>
<td class="nump">52,377<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="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsCurrent', window );">Other Assets</a></td>
<td class="nump">341,006<span></span>
</td>
<td class="nump">358,935<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAssets', window );">Total Other Assets</a></td>
<td class="nump">1,891,037<span></span>
</td>
<td class="nump">1,765,755<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total Assets</a></td>
<td class="nump">16,272,918<span></span>
</td>
<td class="nump">16,769,885<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current Liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts Payable</a></td>
<td class="nump">1,054,040<span></span>
</td>
<td class="nump">1,501,469<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="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities', window );">Accrued Expenses and Other Current Liabilities (Note 13)</a></td>
<td class="nump">664,608<span></span>
</td>
<td class="nump">501,849<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="top.Show.showAR( this, 'defref_us-gaap_CustomerDepositsCurrent', window );">Customer Deposits</a></td>
<td class="nump">6,000<span></span>
</td>
<td class="nump">118,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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current Portion of Long-Term Operating Lease (Note 7)</a></td>
<td class="nump">91,775<span></span>
</td>
<td class="nump">81,223<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total Current Liabilities</a></td>
<td class="nump">1,816,423<span></span>
</td>
<td class="nump">2,203,421<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermLoansPayable', window );">Loan Payable (Note 15)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">410,700<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-Term Operating Lease, Net of Current Portion (Note 7)</a></td>
<td class="nump">861,415<span></span>
</td>
<td class="nump">953,190<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesNoncurrent', window );">Total Long-Term Liabilities</a></td>
<td class="nump">861,415<span></span>
</td>
<td class="nump">1,363,890<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total Liabilities</a></td>
<td class="nump">2,677,838<span></span>
</td>
<td class="nump">3,567,311<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock; par value $0.01 per share, 250,000,000 shares authorized; 19,680,955 and 16,761,513 shares issued and outstanding at September 30, 2021 and December 31, 2020, respectively.</a></td>
<td class="nump">196,810<span></span>
</td>
<td class="nump">167,615<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="top.Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapital', window );">Additional Paid-In Capital</a></td>
<td class="nump">56,941,209<span></span>
</td>
<td class="nump">52,142,399<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="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Accumulated Deficit</a></td>
<td class="num">(43,543,576)<span></span>
</td>
<td class="num">(39,108,078)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total Shareholders' Equity</a></td>
<td class="nump">13,595,080<span></span>
</td>
<td class="nump">13,202,574<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total Liabilities and Shareholders' Equity</a></td>
<td class="nump">16,272,918<span></span>
</td>
<td class="nump">16,769,885<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 September 30, 2021 and December 31, 2020</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="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 September 30, 2021 and December 31, 2020</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: 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 (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 4: 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 http://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<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 65<br> -Paragraph 15<br> -Subparagraph (g)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121322162&amp;loc=SL121327923-165333<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(30)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120398452&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<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)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br><br>Reference 8: 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 http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 20: 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 http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<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 http://asc.fasb.org/extlink&amp;oid=124359900&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 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8906-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6801-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 http://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 http://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<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.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&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 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&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 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br><br>Reference 8: 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 http://asc.fasb.org/extlink&amp;oid=124359900&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 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<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 http://asc.fasb.org/extlink&amp;oid=124359900&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)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&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 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<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)(iii)(B))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&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 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<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 http://asc.fasb.org/extlink&amp;oid=124359900&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)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&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 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<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)(i))<br> -URI http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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(17))<br> -URI http://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 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(10))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 3: 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 http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 4: 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 http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://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 http://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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442526-122756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=120398452&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 http://asc.fasb.org/extlink&amp;oid=120400017&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 20: 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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_LongTermLoansPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of loans payable (with maturities initially due after one year or beyond the operating cycle if longer), excluding current portion.</p></div>
<a href="javascript:void(0);" onclick="top.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.22)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermLoansPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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(17))<br> -URI http://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 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<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)(10))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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.8)<br> -URI http://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 http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6787-107765<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 45<br> -Paragraph 1<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<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 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6387103&amp;loc=d3e6435-108320<br><br>Reference 4: 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 http://asc.fasb.org/extlink&amp;oid=123349782&amp;loc=d3e5879-108316<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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(14))<br> -URI http://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> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<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)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&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 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<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(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: 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 http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 718<br> -SubTopic 10<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (g)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121322162&amp;loc=SL121327923-165333<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)(23)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 5: 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 http://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 6: 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 http://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 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775574311528">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) - $ / shares<br></strong></div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common Stock; Shares Issued</a></td>
<td class="nump">19,680,955<span></span>
</td>
<td class="nump">16,761,513<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="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common Stock; Shares Outstanding</a></td>
<td class="nump">19,680,955<span></span>
</td>
<td class="nump">16,761,513<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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="top.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="top.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">$ 1,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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>24
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570908328">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Sales, net</a></td>
<td class="nump">$ 7,753,582<span></span>
</td>
<td class="nump">$ 25,027,637<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="top.Show.showAR( this, 'defref_us-gaap_CostOfRevenue', window );">Cost of Sales</a></td>
<td class="nump">3,166,891<span></span>
</td>
<td class="nump">9,985,046<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross Profit</a></td>
<td class="nump">4,586,691<span></span>
</td>
<td class="nump">15,042,591<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProfessionalFees', window );">Professional Fees</a></td>
<td class="nump">538,093<span></span>
</td>
<td class="nump">681,377<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="top.Show.showAR( this, 'defref_us-gaap_DepreciationAndAmortization', window );">Depreciation and Amortization</a></td>
<td class="nump">294,665<span></span>
</td>
<td class="nump">719,760<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="top.Show.showAR( this, 'defref_us-gaap_SellingExpense', window );">Selling Expenses</a></td>
<td class="nump">1,674,466<span></span>
</td>
<td class="nump">1,247,444<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="top.Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and Development</a></td>
<td class="nump">572,700<span></span>
</td>
<td class="nump">455,046<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="top.Show.showAR( this, 'defref_tomz_ConsultingFees', window );">Consulting Fees</a></td>
<td class="nump">326,614<span></span>
</td>
<td class="nump">327,232<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="top.Show.showAR( this, 'defref_us-gaap_OtherGeneralAndAdministrativeExpense', window );">General and Administrative</a></td>
<td class="nump">6,104,363<span></span>
</td>
<td class="nump">7,102,942<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Total Operating Expenses</a></td>
<td class="nump">9,510,901<span></span>
</td>
<td class="nump">10,533,801<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Income (loss) from Operations</a></td>
<td class="num">(4,924,210)<span></span>
</td>
<td class="nump">4,508,789<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainsLossesOnExtinguishmentOfDebt', window );">Gain Upon Debt Extinguishment</a></td>
<td class="num">(414,583)<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="top.Show.showAR( this, 'defref_us-gaap_InterestIncomeOther', window );">Interest Income</a></td>
<td class="nump">1,076<span></span>
</td>
<td class="nump">2,915<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="top.Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest Expense</a></td>
<td class="num">(1,034)<span></span>
</td>
<td class="num">(43,538)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpense', window );">Total Other Income (Expense)</a></td>
<td class="nump">414,625<span></span>
</td>
<td class="num">(40,623)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income (loss) before income taxes</a></td>
<td class="num">(4,509,585)<span></span>
</td>
<td class="nump">4,468,166<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for Income Taxes (Note 16)</a></td>
<td class="num">(74,086)<span></span>
</td>
<td class="nump">77,000<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (loss)</a></td>
<td class="num">$ (4,435,499)<span></span>
</td>
<td class="nump">$ 4,391,166<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic</a></td>
<td class="num">$ (0.25)<span></span>
</td>
<td class="nump">$ 0.27<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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted</a></td>
<td class="num">$ (0.25)<span></span>
</td>
<td class="nump">$ 0.23<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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic Weighted Average Common Shares Outstanding</a></td>
<td class="nump">17,538,994<span></span>
</td>
<td class="nump">16,512,126<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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted Weighted Average Common Shares Outstanding</a></td>
<td class="nump">17,538,994<span></span>
</td>
<td class="nump">18,757,509<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Consulting Expenses incurred during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&amp;loc=SL124442552-122756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://asc.fasb.org/extlink&amp;oid=125512782&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 http://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 http://asc.fasb.org/extlink&amp;oid=125512782&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=125512782&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 http://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 http://asc.fasb.org/extlink&amp;oid=125512782&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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123467658&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 http://asc.fasb.org/extlink&amp;oid=123467658&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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123384075&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124509347&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124509347&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of general and administrative expense classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=124433917&amp;loc=SL114874205-224268<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>25
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775574450648">
<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>Common Stock</div></th>
<th class="th"><div>Series A Preferred 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesIssued', window );">Balance, shares at Dec. 31, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,587,552<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="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Dec. 31, 2019</a></td>
<td class="nump">$ 889,543<span></span>
</td>
<td class="nump">$ 155,876<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 44,232,274<span></span>
</td>
<td class="num">$ (43,499,244)<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="top.Show.showAR( this, 'defref_tomz_EquityCompensation', window );">Equity Compensation</a></td>
<td class="nump">3,158,175<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,158,175<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="top.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="nump">50,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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_tomz_CommonStockIssuedForServicesProvidedAmount', window );">Common Stock Issued for Services Provided, amount</a></td>
<td class="nump">50,190<span></span>
</td>
<td class="nump">$ 505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">49,685<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="top.Show.showAR( this, 'defref_tomz_ConversionOfNotesPayableIntoCommonStockShares', window );">Conversion of Notes Payable into Common Stock, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,041,667<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="top.Show.showAR( this, 'defref_tomz_ConversionOfNotesPayableIntoCommonStockAmount', window );">Conversion of Notes Payable into Common Stock, amount</a></td>
<td class="nump">4,500,000<span></span>
</td>
<td class="nump">$ 10,417<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,489,584<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="top.Show.showAR( this, 'defref_tomz_WarrantsAndOptionsExercisedShares', window );">Warrants and Options Exercised, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">79,296<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="top.Show.showAR( this, 'defref_tomz_WarrantsAndOptionsExercisedAmount', window );">Warrants and Options Exercised, amount</a></td>
<td class="nump">213,500<span></span>
</td>
<td class="nump">$ 793<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">212,707<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="top.Show.showAR( this, 'defref_tomz_ReverseStockSplitAdjustmentShares', window );">Reverse stock split adjustment, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_tomz_ReverseStockSplitAdjustmentAmount', window );">Reverse stock split adjustment, amount</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 25<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(25)<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="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income</a></td>
<td class="nump">4,391,166<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,391,166<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">16,761,514<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="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 167,616<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">52,142,399<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="top.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="top.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="nump">50,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="nump">$ 500<span></span>
</td>
<td class="text">&#160;<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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income</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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="nump">2,869,442<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="top.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="nump">$ 28,694<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,552,957<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">19,680,955<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="rc">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 196,810<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 56,941,209<span></span>
</td>
<td class="num">$ (43,543,576)<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ConversionOfNotesPayableIntoCommonStockAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ConversionOfNotesPayableIntoCommonStockAmount</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_ConversionOfNotesPayableIntoCommonStockShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ConversionOfNotesPayableIntoCommonStockShares</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ReverseStockSplitAdjustmentAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ReverseStockSplitAdjustmentAmount</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_ReverseStockSplitAdjustmentShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ReverseStockSplitAdjustmentShares</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_WarrantsAndOptionsExercisedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124509347&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124509347&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>26
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570694408">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">$ (4,435,499)<span></span>
</td>
<td class="nump">$ 4,391,166<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherDepreciationAndAmortization', window );">Depreciation and Amortization</a></td>
<td class="nump">294,665<span></span>
</td>
<td class="nump">719,760<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CapitalizedComputerSoftwareAmortization1', window );">Amortization of Software Costs</a></td>
<td class="nump">41,900<span></span>
</td>
<td class="nump">41,900<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="top.Show.showAR( this, 'defref_tomz_EquityCompensationExpense', window );">Equity Compensation Expense</a></td>
<td class="nump">18,354<span></span>
</td>
<td class="nump">3,130,986<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="top.Show.showAR( this, 'defref_us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims', window );">Value of Equity Issued for Services</a></td>
<td class="nump">228,000<span></span>
</td>
<td class="nump">50,190<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="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease', window );">Reserve for Bad Debt</a></td>
<td class="nump">1,288,000<span></span>
</td>
<td class="nump">280,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="top.Show.showAR( this, 'defref_us-gaap_InventoryLIFOReservePeriodCharge', window );">Inventory Reserve</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(100,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="top.Show.showAR( this, 'defref_us-gaap_GainsLossesOnExtinguishmentOfDebt', window );">Gain Upon Debt Extinguishment</a></td>
<td class="num">(414,583)<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayableAbstract', 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts Receivable</a></td>
<td class="nump">463,925<span></span>
</td>
<td class="num">(2,502,043)<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventory</a></td>
<td class="num">(961,765)<span></span>
</td>
<td class="num">(1,388,986)<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidExpense', window );">Prepaid Expenses</a></td>
<td class="nump">77,732<span></span>
</td>
<td class="num">(233,642)<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeposits', window );">Vendor Deposits</a></td>
<td class="nump">100,126<span></span>
</td>
<td class="num">(247,660)<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherReceivables', window );">Other Receivables</a></td>
<td class="num">(36,953)<span></span>
</td>
<td class="num">(198,951)<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets', window );">Other Assets</a></td>
<td class="num">(100,149)<span></span>
</td>
<td class="num">(294,659)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedTaxesPayableAbstract', 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts Payable</a></td>
<td class="num">(447,429)<span></span>
</td>
<td class="nump">788,247<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued Expenses</a></td>
<td class="nump">166,644<span></span>
</td>
<td class="nump">78,926<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="top.Show.showAR( this, 'defref_tomz_DebtInstrumentIncreasesAccruedInterest', window );">Accrued Interest</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(66,667)<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="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInCustomerDeposits', window );">Customer Deposits</a></td>
<td class="num">(112,880)<span></span>
</td>
<td class="nump">118,880<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="top.Show.showAR( this, 'defref_tomz_IncreaseDecreaseInLeaseLiabilities', window );">Lease Liability</a></td>
<td class="num">(151,088)<span></span>
</td>
<td class="num">(146,688)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net Cash Provided (Used) in Operating Activities</a></td>
<td class="num">(3,823,684)<span></span>
</td>
<td class="nump">4,578,076<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_tomz_CapitalizedPatentAndTrademarkCosts', window );">Capitalized Patent and Trademark Costs</a></td>
<td class="num">(126,697)<span></span>
</td>
<td class="num">(111,386)<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="top.Show.showAR( this, 'defref_tomz_PurchaseOfPropertyAndEquipment', window );">Purchase of Property and Equipment</a></td>
<td class="num">(512,669)<span></span>
</td>
<td class="num">(289,270)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net Cash (Used) in Investing Activities</a></td>
<td class="num">(639,366)<span></span>
</td>
<td class="num">(400,655)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfWarrants', window );">Proceeds from Issuance of Stock and Warrants</a></td>
<td class="nump">4,581,651<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="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from Exercise of Warrants and Options</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">213,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="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromOtherDebt', window );">Proceeds from Loan Payable</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">410,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="top.Show.showAR( this, 'defref_tomz_RepaymentOfPrincipalBalanceOnConvertibleNote', window );">Repayment of Principal Balance on Convertible Note</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(500,000)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net Cash From Financing Activities</a></td>
<td class="nump">4,581,651<span></span>
</td>
<td class="nump">124,200<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect', window );">Increase In Cash and Cash Equivalents</a></td>
<td class="nump">118,601<span></span>
</td>
<td class="nump">4,301,620<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="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and Cash Equivalents - Beginning</a></td>
<td class="nump">5,198,842<span></span>
</td>
<td class="nump">897,223<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="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and Cash Equivalents - Ending</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="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Cash Paid For Interest</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">107,356<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Cash Paid for Income Taxes</a></td>
<td class="nump">75,000<span></span>
</td>
<td class="nump">800<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_tomz_AccruedEquityCompensation', window );">Accrued Equity Compensation</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">27,189<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="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities', window );">Conversion of Note Payable into Common Stock</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,500,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="top.Show.showAR( this, 'defref_tomz_EquipmentNetTransferredToInventory', window );">Equipment, net Transferred to Inventory</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">22,685<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="top.Show.showAR( this, 'defref_tomz_PatentAndTrademarkCostsReclassifiedFromOtherAssets', window );">Patent and trademark costs reclassified from Other Assets</a></td>
<td class="nump">$ 118,078<span></span>
</td>
<td class="nump">$ 49,758<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AccruedEquityCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_AccruedEquityCompensation</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_CapitalizedPatentAndTrademarkCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentIncreasesAccruedInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Increase for accrued, but unpaid interest on the debt instrument for the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_DebtInstrumentIncreasesAccruedInterest</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_EquipmentNetTransferredToInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_EquipmentNetTransferredToInventory</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_EquityCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_IncreaseDecreaseInLeaseLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_tomz_RepaymentOfPrincipalBalanceOnConvertibleNote">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow from the repayment of a long-term debt instrument which can be exchanged for a specified amount of another security, typically the entity's common stock, at the option of the issuer or the holder.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_RepaymentOfPrincipalBalanceOnConvertibleNote</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128487-111756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="top.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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3044-108585<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 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<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.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123467658&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 http://asc.fasb.org/extlink&amp;oid=123467658&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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4297-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncreaseDecreaseInAccountsPayableAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayableAbstract</td>
</tr>
<tr>
<td style="padding-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_IncreaseDecreaseInAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncreaseDecreaseInAccruedTaxesPayableAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedTaxesPayableAbstract</td>
</tr>
<tr>
<td style="padding-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_IncreaseDecreaseInCustomerDeposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://asc.fasb.org/extlink&amp;oid=123398031&amp;loc=d3e60009-112784<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in receivables classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.</p></div>
<a href="javascript:void(0);" onclick="top.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 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4297-108586<br><br>Reference 2: 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 17<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3367-108585<br><br>Reference 3: 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 25<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3536-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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.6b)<br> -URI http://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.6c)<br> -URI http://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.6a)<br> -URI http://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 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e99989-122729<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124509347&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124509347&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ProceedsFromOtherDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from debt classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.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 (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromOtherDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120381028&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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The gross value of stock issued during the period upon the conversion of convertible securities.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://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.29-31)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>27
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775572000040">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NatureOfOperations', window );">1. DESCRIPTION OF BUSINESS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 1. DESCRIPTION OF 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 0px 0px 0in;text-indent:45px">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;&#160;(BIT&#8482;) platform, under which we manufacture, license, service and sell our SteraMist&#174;&#160;brand of products, including SteraMist&#174;&#160;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 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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Invented under a defense grant in association with the Defense Advanced Research Projects Agency (DARPA) of the U.S. Department of Defense, BIT&#8482;&#160;is&#160;registered with the U.S. Environmental Protection Agency (EPA) and&#160;uses a low percentage hydrogen peroxide as its only active ingredient to produce a fog composed mostly of a hydroxyl radical (<strong>.</strong>OH ion), known as ionized Hydrogen Peroxide (iHP&#8482;). Represented by the SteraMist&#174;&#160;brand of products, iHP&#8482;&#160;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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/topic&amp;trid=2134479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>28
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570553032">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</strong></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><em>Principles of Consolidation</em></strong></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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">&#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:6%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Level 1:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Quoted prices in active markets for identical assets or liabilities.</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 0px 0px 0in">Level 2:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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></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 0px 0px 0in">Level 3:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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. At December, 2021 and 2020 there were no cash equivalents.</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><em>Accounts Receivable</em></strong></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 0px 0px 0in;text-indent:45px">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. Bad debt expense for the years ended December 31, 2021 and 2020 was $1,605,660 and $332,027, respectively. At December 31, 2021 and December 31, 2020, the allowance for doubtful accounts was $1,678,000and $390,000, respectively.</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><em>Inventories</em></strong></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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. Our reserve for obsolete inventory was $0 as of December 31, 2021 and December 31, 2020, respectively.</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><em>Property and Equipment</em></strong></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:36pt">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:36pt">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:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 both&#160;the years ended December 31, 2021 and 2020, was $41,900.</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><em>Accounts Payable</em></strong></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 0px 0px 0in;text-indent:45px">As of December 31, 2021, two vendors accounted for approximately 53% of accounts payable. As of December 31, 2020, two vendors accounted for approximately 32% of accounts payable.</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 0px 0px 0in;text-indent:45px">For the year ended December 31, 2021, two vendors accounted for 65% of cost of sales. For the year ended December 31, 2020, two vendors accounted for 76% of cost of sales.</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><em>Accrued Warranties</em></strong></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 0px 0px 0in;text-indent:45px">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, 2021, and December 31, 2020, our warranty reserve was $68,000 (See Note 14).</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><em>Income Taxes</em></strong></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">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 Accounting Standards Codification (ASC) Topic 740: Income Taxes. Net deferred tax benefits have been fully reserved at December 31, 2021 and December 31, 2020. 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"><strong><em>Net Income (Loss) Per Share</em></strong></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 0px 0px 0in;text-indent:45px">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:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Potentially dilutive securities as of December 31, 2020 consisted of 2,049,133 shares of common stock issuable upon exercise of outstanding warrants, 132,500 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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, preferred stock and shares associated with the conversion of debt to purchase approximately 3.6 million and 2.2 million shares of common stock were outstanding at December 31, 2021 and 2020, respectively, but were excluded from the computation of diluted net loss per share at December 31, 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">&#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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">(4,435,499</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,391,166</td><td style="width:1%;white-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 0in">Adjustments for convertible debt - as converted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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">Interest on convertible 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="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><td style="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;">40,689</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 0px 0px 0in">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;">(4,435,599</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,431,855</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 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="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;">16,512,126</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 0px 0px 0in">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;">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><td style="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;">18,757,509</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 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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.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.27</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 0px 0px 0in">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.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.23</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 0px 0px 0in;text-indent:45px">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">&#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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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">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;">(4,435,599</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,391,166</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 0px 0px 0in">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">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,512,126</td><td style="width:1%;white-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 0in">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">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;">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></tr><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">Convertible 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;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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">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;">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></tr><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">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;">63,750</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">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;">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><td style="width:1%;white-space: 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;">18,757,509</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 0px 0px 0in">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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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 0in">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.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.27</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 0px 0px 0in">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.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.23</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 0in">Note: Warrants, options and preferred stock for the years ended December 31, 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.</p><p style="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"><strong><em>Revenue Recognition</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-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 0px 0px 0in"><em>Disaggregation of Revenue</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 0px 0px 0in;text-indent:45px">The following table presents our revenues disaggregated by revenue source.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><em>Product and Service Revenue</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: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>For The Years Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Change </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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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,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;">22,971,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;">(16,792,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 0in">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,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;">2,057,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;">(482,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 0px 0px 0in">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;">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;">25,028,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;">(17,274,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><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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,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;">18,367,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,964,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 0in">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;">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;">6,661,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;">(5,310,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 0px 0px 0in">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;">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;">25,028,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;">(17,274,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><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">As of December 31, 2021, and December 31, 2020 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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 0px 0px 0in;text-indent:45px">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. 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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 years ended December 31, 2021 and 2020, we issued 50,000 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Concentrations of Credit Risk</em></strong></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 0px 0px 0in;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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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, 2021 and 2020.</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><em>Advertising and Promotional Expenses</em></strong></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 0px 0px 0in;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, 2021 and 2020 were approximately $701,000 and $276,000, respectively.</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><em>Research and Development Expenses</em></strong></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 0px 0px 0in;text-indent:45px">We expense research and development expenses in the period in which they are incurred. For the years ended December 31, 2021 and 2020, research and development expenses were approximately $573,000 and $455,000, respectively.</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><em>Business Segments</em></strong></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 0px 0px 0in;text-indent:45px">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"><strong><em>Recent Accounting Pronouncements</em></strong></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"><em>Recently issued accounting pronouncements not yet adopted</em></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">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">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. The disclosure requirements can be applied either retrospectively or prospectively to all transactions in the scope of the amendments that are reflected in the financial statements at the date of initial application and new transactions that are entered into after the date of initial application. The 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:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"><em>Recently adopted accounting pronouncements</em></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">In December 2019, the FASB issued ASU No. 2019-12, Simplifying the Accounting for Income Taxes, as part of its initiative to reduce complexity in accounting standards. The amendments in the ASU include removing exceptions to incremental intraperiod tax allocation of losses and gains from different financial statement components, exceptions to the method of recognizing income taxes on interim period losses, and exceptions to deferred tax liability recognition related to foreign subsidiary investments. In addition, the ASU requires that entities recognize franchise tax based on an incremental method and requires an entity to evaluate the accounting for step-ups in the tax basis of goodwill as inside or outside of a business combination. We adopted ASU 2019-12 starting 2021, 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123372394&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 http://asc.fasb.org/topic&amp;trid=2122369<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>29
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775571978216">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">3. 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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><td style="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,404,025</td><td style="width:1%;white-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 0in">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="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;">450,200</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;">377,490</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;">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><td style="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;">3,781,515</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/topic&amp;trid=2126998<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>30
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775571981800">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_tomz_VendorDepositsTextBlock', window );">4. VENDOR DEPOSITS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 4. VENDOR DEPOSITS</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:45px">On December 31, 2021 and December 31, 2020, we maintained vendor deposits of $288,586 and $388,712, 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>31
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570573464">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock', window );">5. PROPERTY AND EQUIPMENT</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 5. PROPERTY AND EQUIPMENT</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:45px">&#160;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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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><td style="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 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,580,743</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">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 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">203,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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in">Tenant Improvement 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="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in">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;">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><td style="width:1%;white-space: 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="width:1%;white-space: nowrap;"><p style="font-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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,993,507</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">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,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><td style="width:1%;white-space: 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,695,404</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;">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><td style="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,298,103</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 0in;text-indent:45px">For the years ended December 31, 2021 and 2020, depreciation was $283,259 and $342,523, respectively. For the years ended December 31, 2021 and 2020, 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120429125&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 http://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 http://asc.fasb.org/extlink&amp;oid=120429125&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 http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99779-112916<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>32
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570572904">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">6. INTANGIBLE ASSETS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 6. INTANGIBLE ASSETS</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:45px">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 $11,406 and $377,237 for the years ended December 31, 2021 and 2020, respectively.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Definite life intangible assets consist of the following:</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&#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 0px 0px 0in; text-align:center;"><strong>&#160;December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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,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><td style="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,000,012</td><td style="width:1%;white-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 0in">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,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><td style="width:1%;white-space: 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,856,991</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 0in">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;">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><td style="width:1%;white-space: 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;">143,021</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 0in;text-indent:45px">Indefinite life intangible assets consist of the following:</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;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="width:1%;white-space: 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;">578,895</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 0px 0px 0in">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: 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;">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><td style="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;">722,916</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 0in;text-indent:45px">Approximate future amortization is 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 0px 0px 0in;text-indent:45px">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:85%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span style="text-decoration:underline">Year Ended</span></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"><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></tr><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">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="width:1%;white-space: nowrap;"><p style="font-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,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">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;">10,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">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;">10,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">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;">10,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">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;">10,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">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: 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;">147,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;</p></td><td style="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;">197,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_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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> -URI http://asc.fasb.org/topic&amp;trid=2144416<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>33
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570639512">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeasesOfLesseeDisclosureTextBlock', window );">7. LEASES</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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 was scheduled to commence on December 1, 2018 or 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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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">&#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 0px 0px 0in"><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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in"><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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">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;">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><td style="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;">631,527</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 0px 0px 0in"><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;">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><td style="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;">81,223</td><td style="width:1%;white-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;">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><td style="width:1%;white-space: 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;">953,190</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;">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><td style="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,034,413</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 0in;text-indent:45px">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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0in">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 0px 0px 0in;text-indent:45px">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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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 0px 0px 0in">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 0px 0px 0in; text-align:right;">&#160;7.25 years</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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 0px 0px 0in; text-align:right;">&#160;8.25 years</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 style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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 0px 0px 0in;text-indent:45px">Supplemental cash flow 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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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><td style="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;">146,688</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 0in;text-indent:45px">As of December 31, 2021, 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 0px 0px 0in"><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 0px 0px 0in"><strong>&#160;Operating 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 0px 0px 0in">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="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">155,621</td><td style="width:1%;white-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 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">399,978</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 0in">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,226,191</td><td style="width:1%;white-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 0in">Less: 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;">273,001</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 0in">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;">953,190</td><td style="width:1%;white-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 0in">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;">91,775</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 0in">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;">861,415</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/topic&amp;trid=2208923<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>34
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570576872">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock', window );">8. CAPITALIZED SOFTWARE DEVELOPMENT COSTS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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 0px 0px 0in">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;">(115,229</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;">(73,327</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: 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><td style="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;">52,377</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 0in;text-indent:45px">Amortization expense for the years ended December 31, 2021 and 2020 was $41,900 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/subtopic&amp;trid=2197926<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>35
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775571971016">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_tomz_CloudComputingServiceContractDisclosureTextBlock', window );">9. CLOUD COMPUTING SERVICE CONTRACT</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 9. 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 0px 0px 0in;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 0px 0px 0in;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, 2021. 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, 2021 and 2020 were $14,232 and $17,745, 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>36
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570558216">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock', window );">10. SHAREHOLDERS' EQUITY</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong><em>Reverse Stock Split</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-indent:45px">On September 9, 2020, the Board approved a reverse stock split of our common stock and our Convertible Series A Preferred Stock, in each case, at a ratio of 1-for-8 and without any change to the respective par value thereof (the &#8220;Reverse Stock Split&#8221;), and, on September 10, 2020, we filed an Articles of Amendment to our Articles of Incorporation with the Department of State of the State of Florida to effect the Reverse Stock Split. The Reverse Stock Split became effective as of September 10, 2020. All per-share and share amounts have been retroactively restated.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">Our authorized Convertible Series A Preferred Stock, $0.01 par value, consists of 1,000,000 shares. At December 31, 2021 and 2020, 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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">Our authorized Convertible Series B Preferred Stock, $1,000 stated value, 7.5% cumulative dividend, consists of 4,000 shares. At December 31, 2021 and 2020, 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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">During the year ended December 31, 2020, we issued 50,000 shares of common stock valued at $48,000 to members of our Board (see Note 13). During the year ended December 31, 2020, we issued 500 shares of common stock valued at $2,190 to a consultant.</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 0px 0px 0in;text-indent:45px">In March 2020, 1,041,667 shares of common stock were issued in connection with the conversion of convertible notes payable aggregating $4,500,000.</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 0px 0px 0in;text-indent:45px">In March 2020, 10,417 shares of common stock were issued in connection with the exercise of warrants for which we received proceeds of $57,500.</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 0px 0px 0in;text-indent:45px">In May 2020, 2,500 shares of common stock were issued in connection with the exercise of options for which we received proceeds of $1,000.</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 0px 0px 0in;text-indent:45px">In June 2020, 26,940 shares of common stock were issued in connection with the exercise of warrants for which we received proceeds of $62,500.</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 0px 0px 0in;text-indent:45px">In July 2020, 26,940 shares of common stock were issued in connection with the exercise of warrants for which we received proceeds of $62,500.</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 0px 0px 0in;text-indent:45px">In October 2020, 12,500 shares of common stock were issued to our CFO in connection with the exercise of warrants for which we received proceeds of $30,000.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In January 2021, we issued 50,000 shares of common stock valued at $228,000 to members of our Board (see Note 12).&#160;</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 0px 0px 0in;text-indent:45px">In September 2021, we sold 2,869,442 shares of common stock through a registered direct offering and issued 1,434,721 warrants 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 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 0px 0px 0in"><strong><em>Stock Options</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-indent:45px">In January 2020, we issued two options to purchase an aggregate of 31,250 shares of common stock to our Chief Operating Officer at an exercise price of $0.80 and $0.96 per share pursuant to her employment agreement with us. The options were valued at a total of $23,595 and have a term of 5 years. We utilized the Black-Scholes method to fair value the options received by the COO with the following assumptions: volatility, 135%; expected dividend yield, 0%; risk free interest rate, 1.64%; and a life of 5 years. The grant date fair value of each share of common stock underlying the options was $0.72 and $0.80. The value of the stock option was included in accrued expenses at December 31, 2019.</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 0px 0px 0in;text-indent:45px">In October 2020, we issued options to purchase an aggregate of 31,250 shares of common stock to our Chief Operating Officer at an exercise price of $7.06 per share pursuant to her employment agreement with us. The options were valued at a total of $202,104 and have a term of 5 years. We utilized the Black-Scholes method to fair value the options received by the COO with the following assumptions: volatility, 154%; expected dividend yield, 0%; risk free interest rate, 0.67%; and a life of 5 years. The grant date fair value of each share of common stock underlying the options was $6.47.</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 0px 0px 0in;text-indent:45px">In December 2021, we issued options to purchase an aggregate of 10,500 shares of common stock to employees at an exercise price of $1.93 per share. The options were valued at a total of $18,354 and have a term of 5 years. We utilized the Black-Scholes method to fair value the options received by the employees with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.25%; and a life of 5 years. The grant date fair value of each share of common stock underlying the options was $1.75.</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 0px 0px 0in;text-indent:45px">The following table summarizes stock options outstanding as of December 31, 2021 and 2020:</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 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;"><strong>December 31, 2020</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 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">77,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.56</td><td style="width:1%;white-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 0in">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;">&#160;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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,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;">3.96</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">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;">-&#160;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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;">(2,500</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.40</td><td style="width:1%;white-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 0in">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;">(5,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;">16.80</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 0in">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;">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><td style="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;">&#160;132,500</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.72</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 0px 0px 0in;text-indent:45px">Options outstanding and exercisable by price range as of December 31, 2021 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: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Remaining</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><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:9%;"><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:9%;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:9%;vertical-align:bottom;text-align:right;">3.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:9%;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: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></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;">2.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;">2.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.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.96</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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:#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.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;">3.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:#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.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;">4.10</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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:#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;">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="BORDER-BOTTOM: black 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: black 1px solid;vertical-align:bottom;text-align:right;">31,250</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: black 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: black 1px solid;vertical-align:bottom;text-align:right;">3.75</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: black 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: black 1px solid;vertical-align:bottom;text-align:right;">31,250</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: black 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;">7.06</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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="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;">143,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;">2.89</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;">143,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;">2.66</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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">In January 2020 we issued a warrant to purchase 156,250 shares of common stock to our Chief Executive Officer at an exercise price of $1.20 per share pursuant to an employment agreement. The warrant was valued at $164,201 and has a term of 5 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 136%; expected dividend yield, 0%; risk free interest rate, 1.64%; and a life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.04.</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 0px 0px 0in;text-indent:45px">In January 2020 we issued a warrant to purchase 5,208 shares of common stock to an employee at an exercise price of $0.96 per share. The warrant was valued at $3,594 and has a term of 5 years. We utilized the Black-Scholes model to fair value the warrant received by the employee with the following assumptions: volatility, 135%; expected dividend yield, 0%; risk free interest rate, 1.58%; and a life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $0.72. The value of the warrants was expensed in the fourth quarter of 2019 and included in accrued expenses at December 31, 2019.</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 0px 0px 0in;text-indent:45px">In February 2020 we issued a warrant to purchase 18,750 shares of common stock to an employee at an exercise price of $1.20 per share. The warrant was valued at $18,571 and has a term of 3 years. We utilized the Black-Scholes model to fair value the warrant received by the employee with the following assumptions: volatility, 155%; expected dividend yield, 0%; risk free interest rate, 1.64%; and a life of 3 years. The grant date fair value of each share of common stock underlying the warrant was $0.96.</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 0px 0px 0in;text-indent:45px">In April 2020 we issued a warrant to purchase 12,500 shares of common stock to our Chief Executive Officer at an exercise price of $4.00 per share pursuant to an employment agreement. The warrant was valued at $49,693 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, 173%; expected dividend yield, 0%; risk free interest rate, 0.68%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $4.00.</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 0px 0px 0in;text-indent:45px">In April 2020 we issued a warrant to purchase 6,250 shares of common stock to our Chief Operating Officer at an exercise price of $4.00 per share pursuant to an employment agreement. The warrant was valued at $24,846 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, 173%; expected dividend yield, 0%; risk free interest rate, 0.68%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $4.00.</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 0px 0px 0in;text-indent:45px">In April 2020 we issued a warrant to purchase 6,250 shares of common stock to our Chief Financial Officer at an exercise price of $4.00 per share pursuant to an employment agreement. The warrant was valued at $24,846 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, 173%; expected dividend yield, 0%; risk free interest rate, 0.68%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $4.00.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In April 2020 we issued a warrant to purchase 3,750 shares of common stock to a consultant at an exercise price of 4.00 per share. The warrant was valued at $14,908 and has a term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by the consultant with the following assumptions: volatility, 173%; expected dividend yield, 0%; risk free interest rate, 0.68%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $4.00.</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 0px 0px 0in;text-indent:45px">In August 2020 we issued a warrant to purchase 893 shares of common stock to a consultant at an exercise price of $8.40 per share. The warrant was valued at $6,372 and has a term of 3 years. We utilized the Black-Scholes model to fair value the warrant received by the consultant with the following assumptions: volatility, 166%; expected dividend yield, 0%; risk free interest rate, 0.13%; and a life of 3 years. The grant date fair value of each share of common stock underlying the warrant was $7.13.</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 0px 0px 0in;text-indent:45px">In August 2020 we issued a warrant to purchase 595 shares of common stock to a consultant at an exercise price of $8.40 per share. The warrant was valued at $4,249 and has a term of 3 years. We utilized the Black-Scholes model to fair value the warrant received by the consultant with the following assumptions: volatility, 166%; expected dividend yield, 0%; risk free interest rate, 0.13%; and a life of 3 years. The grant date fair value of each share of common stock underlying the warrant was $7.14.</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 0px 0px 0in;text-indent:45px">In October 2020 we issued a warrant to purchase 375,000 shares of common stock to our Chief Executive Officer at an exercise price of $6.95 per share pursuant to an employment agreement. The warrant was valued at $2,621,196 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, 162%; expected dividend yield, 0%; risk free interest rate, 0.67%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $6.99.</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 0px 0px 0in;text-indent:45px">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. The $314,500 charge in connection with the warrant amendment has been included in General and Administrative expenses for the&#160;year ended December 31, 2021.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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. 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">The following table summarizes the outstanding common stock warrants as of December 31, 2021 and 2020:</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 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;"><strong>December 31, 2020</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 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,155,065</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="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.12</td><td style="width:1%;white-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 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">585,447</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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.97</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">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;">(76,796</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.77</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 0in">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;">(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><td style="width:1%;white-space: 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;">(614,583</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;">(6.40</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 0px 0px 0in">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;">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><td style="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,049,133</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.55</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 0px 0px 0in;text-indent:45px">Warrants outstanding and exercisable by price range as of December 31, 2021 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 0px 0px 0in; 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"/><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Average Weighted</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Remaining Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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:9%;"><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: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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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.90</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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><td style="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></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;">158,125</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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.76</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">158,125</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">473,958</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">0.94</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">473,958</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">2.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;">2.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.36</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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,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;">0.82</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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,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.36</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.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;">1.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:#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.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;">4.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:#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.32</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">523,061</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">0.18</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">523,061</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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.32</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;">8.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;">8.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,488</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.62</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,488</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;">3,381,021</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;">3.66</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;">3,381,021</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.22</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 0px 0px 0in;text-indent:45px">There were no unvested warrants outstanding as of December 31, 2021.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<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> -URI http://asc.fasb.org/extlink&amp;oid=123467817&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 14<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496171-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 (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&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 S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://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 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496189-112644<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 13<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -URI http://asc.fasb.org/topic&amp;trid=2208762<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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>37
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570577432">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">11. COMMITMENTS AND CONTINGENCIES</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in"><strong><em>Legal Contingencies</em></strong></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 0px 0px 0in;text-indent:45px">We may become a party to litigation in the normal course of business.&#160;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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">As of December 31, 2021 and 2020, there were no claims against us for product liability.</p><p style="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"><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 0px 0px 0in;text-indent:45px">The COVID-19 pandemic has 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. It is difficult to predict how COVID-19 pandemic will affect the Company&#8217;s financial performance in the remainder of 2022, 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.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 450<br> -URI http://asc.fasb.org/topic&amp;trid=2127136<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -URI http://asc.fasb.org/topic&amp;trid=2144648<br><br>Reference 3: 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 http://asc.fasb.org/extlink&amp;oid=6491277&amp;loc=d3e6429-115629<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 http://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 http://asc.fasb.org/extlink&amp;oid=123406679&amp;loc=d3e25336-109308<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>38
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570661096">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_tomz_ContractsAndAgreementsTextBlock', window );">12. CONTRACTS AND AGREEMENTS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in"><strong><em>Executive Agreements</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"><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 0px 0px 0in;text-indent:45px">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 0px 0px 0in;text-indent:45px">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 0px 0px 0in"><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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><em>Agreements with Directors</em></strong></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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">For the year ended December 31, 2020, 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In June 2020 we entered into a manufacturing agreement with Planet Innovation Products, Pty Ltd (&#8220;PI&#8221;). 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"><strong><em>Cloud Computing Service Contract</em></strong></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 0px 0px 0in;text-indent:45px">In May 2020 we entered into an agreement 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 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:85%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span style="text-decoration:underline">Year Ended</span></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"><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></tr><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, 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%;vertical-align:bottom;white-space: nowrap;">$</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, 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:#cceeff"><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:#ffffff"><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:#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: 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;">90,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 0in"><strong><em>Other Agreements</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-indent:45px">TOMI Service Network (&#8220;TSN&#8221;) is a national service network composed of existing full-service restoration industry specialists that have entered initially into licensing agreements with us to become Primary Service Providers (&#8220;PSPs&#8221;). The licensing agreements originally granted protected territories to PSPs to perform services using our SteraMist<sup>&#174;</sup> platform of products and also provide for potential job referrals to PSPs whereby we are entitled to referral fees. Additionally, the agreement provides for commissions due to PSPs for equipment and solution sales they facilitate to other service providers in their respective territories. As part of these agreements, we are obligated to provide to the PSPs various training, ongoing support and facilitate a referral network call center. As of December 31, 2021, we have 205 network companies in TSN. The nature and terms of our TSN agreements may represent multiple deliverable arrangements. Each of the deliverables in these arrangements typically represent a separate unit of accounting. There is no exclusivity in our TSN network.</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_ContractsAndAgreementsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Contracts and agreements text block.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>39
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570612968">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock', window );">13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</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">Accrued expenses and other current liabilities consisted 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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><td style="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;">151,709</td><td style="width:1%;white-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 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">84,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 0in">Director 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;">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:9%;vertical-align:bottom;text-align:right;">41,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 0px 0px 0in">Sales Tax 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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,784</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">Income Taxes Payable (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="width:1%;white-space: nowrap;"><p style="font-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;">77,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 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="width:1%;white-space: 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;">70,106</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 0in">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;">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><td style="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;">501,849</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>40
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775573236440">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GuaranteesTextBlock', window );">14. ACCRUED WARRANTY</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 14. ACCRUED WARRANTY</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: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;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">101,041</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">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;">(75,618</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;">(63,041</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 0in">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/topic&amp;trid=2155896<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>41
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570670984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>LOAN PAYABLE<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_LoansPayableAbstract', window );"><strong>LOAN PAYABLE</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="top.Show.showAR( this, 'defref_tomz_LoansPayableDisclosureTextBlock', window );">15. LOAN PAYABLE</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 15. LOAN PAYABLE</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:45px">On April 21, 2020, we received $410,700 in loan funding from the Paycheck Protection Program (the "PPP") established pursuant to the recently enacted Coronavirus Aid, Relief, and Economic Security Act of 2020 (the "CARES Act") and administered by the U.S. Small Business Administration ("SBA"). The unsecured loan (the "PPP Loan") is evidenced by a promissory note of the Company, dated April 21, 2020 (the "Note") in the principal amount of $410,700 with City National Bank (the "Bank"), the lender. </p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Under the terms of the Note and the PPP Loan, interest accrues on the outstanding principal at the rate of 1.0% per annum. The term of the Note is two years, though it may be payable sooner in connection with an event of default under the Note. </p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">In May of 2021, the loan principal and related interest was forgiven and we recognized a gain upon debt extinguishment in our statement of operations in the amount of $414,583 for the year ended December 31, 2021.</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_LoansPayableDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_LoansPayableDisclosureTextBlock</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_LoansPayableAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LoansPayableAbstract</td>
</tr>
<tr>
<td style="padding-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>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570679528">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">16. INCOME TAXES</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong>NOTE 16. INCOME TAXES</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:45px"><strong>The Company&#8217;s income tax expense (benefit) consisted of:</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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">Current:</p></td><td 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">Federal</p></td><td style="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;">-</td><td style="width:1%;white-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">State</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">77,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">Foreign</p></td><td style="width:1%;white-space: 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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="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;">(74,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;">77,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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Deferred:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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">Federal </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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">State</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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">Foreign</p></td><td style="width:1%;white-space: 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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: 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 0px 0px 0in">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;">(74,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;">77,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 0px 0px 0in">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"><strong>The Company&#8217;s net income (loss) before income tax consisted of:</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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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 0px 0px 0in; 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 0px 0px 0in; 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;"><strong>December 31,</strong></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/><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 0px 0px 0in; 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/><td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 15px">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;">(<span style="background-color:#ffffff">4,509,585</span></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,468,166</td><td style="width:1%;white-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">Foreign</p></td><td style="width:1%;white-space: 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 0px 0px 0in">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;">(<span style="background-color:#ffffff">4,509,585</span></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,468,166</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 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 0px 0px 0in;text-indent:45px">The reconciliation of taxes at the federal and state statutory rate to our provision for income taxes for the years ended December&#160;31, 2021 and 2020 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><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;"><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 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>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: #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>2020</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="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;">(4,509,585</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,468,166</td><td style="width:1%;white-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">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 style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income tax expense 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;">(1,002,844</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,251,086</td><td style="width:1%;white-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">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,050,485</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 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%;vertical-align:bottom;text-align:right;">(60,646</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></tr><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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">876,676</td><td style="width:1%;white-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%;vertical-align:bottom;text-align:right;">(116,083</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%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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">Meals and Entertainment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,300</td><td style="width:1%;white-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</p></td><td style="width:1%;white-space: 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><td style="width:1%;white-space: 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,577</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">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;">(74,086</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;">77,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 0in;text-indent:45px">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 0px 0px 0in; 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 0px 0px 0in; 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: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">109,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">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">82,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">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:#ffffff"><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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">290,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,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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,100,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;">(4,941,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;">(3,530,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;">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><td style="width:1%;white-space: 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;">482,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;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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 0in">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;">(277,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;">(290,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;">(147,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;">(192,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;">(424,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;">(482,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 0px 0px 15px">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 0px 0px 0in;text-indent:45px">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, 2021, we recorded a valuation allowance of $4,941,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 $1,411,000 during the year ended December 31, 2021, 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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, 2021 and 2020 of approximately $15,312,000 and $11,465,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, 2021 and 2020 of approximately $11,881,000 and $9,663,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 0px 0px 0in;text-indent:45px">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, 2021, and 2020, 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://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 http://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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>43
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570645304">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskDisclosureTextBlock', window );">17. CUSTOMER CONCENTRATION</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 17. CUSTOMER CONCENTRATION</strong></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 0px 0px 0in;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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">As of December 31, 2020, three customers accounted for 36% of our gross accounts receivable.</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 0px 0px 0in;text-indent:45px">For the years ended December 31, 2021 and 2020, 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/topic&amp;trid=2134479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>44
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570438360">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">18. SUBSEQUENT EVENTS</a></td>
<td class="text"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>NOTE 18. SUBSEQUENT EVENTS</strong></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 0px 0px 0in;text-indent:45px">Pursuant to the agreement with our Board of Directors, in January 2022, we issued an aggregate of 51,750 shares of common stock valued at approximately $54,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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 $190,239 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, 151%; expected dividend yield, 0%; risk free interest rate, 1.75%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $1.10.</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 0px 0px 0in;text-indent:45px">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 $63,413 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, 151%; expected dividend yield, 0%; risk free interest rate, 1.75%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $1.10.</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 0px 0px 0in;text-indent:45px">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 $44,113 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, 151%; expected dividend yield, 0%; risk free interest rate, 1.75%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $1.10.</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=6842918&amp;loc=SL6314017-165662<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>45
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775573519512">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in;text-indent:45px">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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in;text-indent:45px">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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in;text-indent:45px">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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in;text-indent:45px">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">&#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:6%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Level 1:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Quoted prices in active markets for identical assets or liabilities.</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 0px 0px 0in">Level 2:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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></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 0px 0px 0in">Level 3:</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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 0px 0px 0in;text-indent:45px">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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in;text-indent:45px">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. At December, 2021 and 2020 there were no cash equivalents.</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="top.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 0px 0px 0in;text-indent:45px">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. Bad debt expense for the years ended December 31, 2021 and 2020 was $1,605,660 and $332,027, respectively. At December 31, 2021 and December 31, 2020, the allowance for doubtful accounts was $1,678,000and $390,000, 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="top.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 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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. Our reserve for obsolete inventory was $0 as of December 31, 2021 and December 31, 2020, respectively.</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="top.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 0px 0px 0in;text-indent:45px">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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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:36pt">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:36pt">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:45px">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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in;text-indent:45px">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 both&#160;the years ended December 31, 2021 and 2020, was $41,900.</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="top.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 0px 0px 0in;text-indent:45px">As of December 31, 2021, two vendors accounted for approximately 53% of accounts payable. As of December 31, 2020, two vendors accounted for approximately 32% of accounts payable.</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 0px 0px 0in;text-indent:45px">For the year ended December 31, 2021, two vendors accounted for 65% of cost of sales. For the year ended December 31, 2020, two vendors accounted for 76% of cost of sales.</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="top.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 0px 0px 0in;text-indent:45px">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, 2021, and December 31, 2020, our warranty reserve was $68,000 (See Note 14).</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="top.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:45px">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 Accounting Standards Codification (ASC) Topic 740: Income Taxes. Net deferred tax benefits have been fully reserved at December 31, 2021 and December 31, 2020. 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in;text-indent:45px">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:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">Potentially dilutive securities as of December 31, 2020 consisted of 2,049,133 shares of common stock issuable upon exercise of outstanding warrants, 132,500 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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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, preferred stock and shares associated with the conversion of debt to purchase approximately 3.6 million and 2.2 million shares of common stock were outstanding at December 31, 2021 and 2020, respectively, but were excluded from the computation of diluted net loss per share at December 31, 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">&#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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">(4,435,499</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,391,166</td><td style="width:1%;white-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 0in">Adjustments for convertible debt - as converted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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">Interest on convertible 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="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><td style="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;">40,689</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 0px 0px 0in">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;">(4,435,599</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,431,855</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 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="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;">16,512,126</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 0px 0px 0in">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;">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><td style="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;">18,757,509</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 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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.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.27</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 0px 0px 0in">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.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.23</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 0px 0px 0in;text-indent:45px">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">&#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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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">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;">(4,435,599</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,391,166</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 0px 0px 0in">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">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,512,126</td><td style="width:1%;white-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 0in">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">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;">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></tr><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">Convertible 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;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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">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;">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></tr><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">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;">63,750</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">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;">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><td style="width:1%;white-space: 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;">18,757,509</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 0px 0px 0in">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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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 0in">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.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.27</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 0px 0px 0in">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.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.23</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 0in">Note: Warrants, options and preferred stock for the years ended December 31, 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.</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="top.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 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 0px 0px 0in"><em>Disaggregation of Revenue</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 0px 0px 0in;text-indent:45px">The following table presents our revenues disaggregated by revenue source.</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><em>Product and Service Revenue</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: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>For The Years Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Change </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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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,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;">22,971,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;">(16,792,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 0in">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,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;">2,057,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;">(482,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 0px 0px 0in">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;">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;">25,028,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;">(17,274,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><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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,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;">18,367,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,964,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 0in">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;">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;">6,661,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;">(5,310,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 0px 0px 0in">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;">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;">25,028,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;">(17,274,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><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#160;</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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">As of December 31, 2021, and December 31, 2020 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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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;text-indent:45px">&#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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">&#160;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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in;text-indent:45px">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 0px 0px 0in;text-indent:45px">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. 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-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px">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 years ended December 31, 2021 and 2020, we issued 50,000 and 50,000 shares of common stock, respectively, out of the 2016 Plan.</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="top.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 0px 0px 0in;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="top.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 0px 0px 0in;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, 2021 and 2020.</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="top.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 0px 0px 0in;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, 2021 and 2020 were approximately $701,000 and $276,000, respectively.</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="top.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 0px 0px 0in;text-indent:45px">We expense research and development expenses in the period in which they are incurred. For the years ended December 31, 2021 and 2020, research and development expenses were approximately $573,000 and $455,000, 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="top.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 0px 0px 0in;text-indent:45px">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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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:45px"><em>Recently issued accounting pronouncements not yet adopted</em></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">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;text-indent:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">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. The disclosure requirements can be applied either retrospectively or prospectively to all transactions in the scope of the amendments that are reflected in the financial statements at the date of initial application and new transactions that are entered into after the date of initial application. The 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:45px">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"><em>Recently adopted accounting pronouncements</em></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">In December 2019, the FASB issued ASU No. 2019-12, Simplifying the Accounting for Income Taxes, as part of its initiative to reduce complexity in accounting standards. The amendments in the ASU include removing exceptions to incremental intraperiod tax allocation of losses and gains from different financial statement components, exceptions to the method of recognizing income taxes on interim period losses, and exceptions to deferred tax liability recognition related to foreign subsidiary investments. In addition, the ASU requires that entities recognize franchise tax based on an incremental method and requires an entity to evaluate the accounting for step-ups in the tax basis of goodwill as inside or outside of a business combination. We adopted ASU 2019-12 starting 2021, 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Custom Element.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Long lived assets including acquired intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for advertising cost.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://asc.fasb.org/extlink&amp;oid=6420018&amp;loc=d3e36677-107848<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=6909625&amp;loc=d3e227-128457<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4273-108586<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(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for credit risk.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123345438&amp;loc=d3e61044-112788<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123372394&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 http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=d3e5614-111684<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3630-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121557415&amp;loc=d3e14326-108349<br><br>Reference 2: 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 http://asc.fasb.org/extlink&amp;oid=123368208&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4556-108314<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 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br><br>Reference 3: 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 http://asc.fasb.org/extlink&amp;oid=6471895&amp;loc=d3e55923-109411<br><br>Reference 4: 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 http://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4492-108314<br><br>Reference 5: 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 http://asc.fasb.org/extlink&amp;oid=124437754&amp;loc=d3e543-108305<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI http://asc.fasb.org/topic&amp;trid=2126998<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 http://asc.fasb.org/extlink&amp;oid=123372394&amp;loc=d3e18823-107790<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 210.5-02.6(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918666-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=124429488&amp;loc=d3e326-107755<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99779-112916<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.13(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<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 6<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99893-112916<br><br>Reference 4: 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 http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=84159169&amp;loc=d3e10133-111534<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=118172244&amp;loc=d3e17916-109280<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.15)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123372394&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 http://asc.fasb.org/extlink&amp;oid=123372394&amp;loc=d3e18823-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 (b),(f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&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 1<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5047-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>46
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775571999192">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">(4,435,499</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,391,166</td><td style="width:1%;white-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 0in">Adjustments for convertible debt - as converted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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">Interest on convertible 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="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><td style="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;">40,689</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 0px 0px 0in">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;">(4,435,599</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,431,855</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 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="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;">16,512,126</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 0px 0px 0in">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;">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><td style="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;">18,757,509</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 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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.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.27</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 0px 0px 0in">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.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.23</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: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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">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;">(4,435,599</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,391,166</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 0px 0px 0in">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">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">16,512,126</td><td style="width:1%;white-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 0in">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">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;">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></tr><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">Convertible 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;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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">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;">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></tr><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">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;">63,750</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">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;">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><td style="width:1%;white-space: 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;">18,757,509</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 0px 0px 0in">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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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 0in">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.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.27</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 0px 0px 0in">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.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.23</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="top.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: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>For The Years Ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Change </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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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,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;">22,971,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;">(16,792,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 0in">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,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;">2,057,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;">(482,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 0px 0px 0in">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;">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;">25,028,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;">(17,274,000</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: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>For The Years Ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in; 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 0px 0px 0in">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,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;">18,367,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,964,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 0in">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;">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;">6,661,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;">(5,310,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 0px 0px 0in">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;">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;">25,028,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;">(17,274,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123351226&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>47
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570606232">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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><td style="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,404,025</td><td style="width:1%;white-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 0in">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="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;">450,200</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;">377,490</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;">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><td style="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;">3,781,515</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>48
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570611288">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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><td style="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 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,580,743</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">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 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">203,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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in">Tenant Improvement 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="width:1%;white-space: nowrap;"><p style="font-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 0px 0px 0in">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;">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><td style="width:1%;white-space: 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="width:1%;white-space: nowrap;"><p style="font-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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,993,507</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">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,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><td style="width:1%;white-space: 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,695,404</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;">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><td style="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,298,103</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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(13))<br> -URI http://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> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>49
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775573104392">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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;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 0px 0px 0in; text-align:center;"><strong>&#160;December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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,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><td style="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,000,012</td><td style="width:1%;white-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 0in">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,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><td style="width:1%;white-space: 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,856,991</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 0in">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;">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><td style="width:1%;white-space: 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;">143,021</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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;width:100%"><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 0px 0px 0in">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;">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><td style="width:1%;white-space: 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;">578,895</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 0px 0px 0in">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: 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;">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><td style="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;">722,916</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="top.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:85%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span style="text-decoration:underline">Year Ended</span></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"><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></tr><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">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="width:1%;white-space: nowrap;"><p style="font-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,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">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;">10,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">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;">10,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">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;">10,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">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;">10,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">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: 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;">147,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;</p></td><td style="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;">197,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_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123413009&amp;loc=d3e4922-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>50
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570851560">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in"><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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in"><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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">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;">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><td style="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;">631,527</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 0px 0px 0in"><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;">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><td style="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;">81,223</td><td style="width:1%;white-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;">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><td style="width:1%;white-space: 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;">953,190</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;">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><td style="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,034,413</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="top.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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0in">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="top.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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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 0px 0px 0in">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 0px 0px 0in; text-align:right;">&#160;7.25 years</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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 0px 0px 0in; text-align:right;">&#160;8.25 years</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 style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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="top.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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>For the Year </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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><td style="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;">146,688</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="top.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 0px 0px 0in"><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 0px 0px 0in"><strong>&#160;Operating 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 0px 0px 0in">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="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">155,621</td><td style="width:1%;white-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 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">399,978</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 0in">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,226,191</td><td style="width:1%;white-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 0in">Less: 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;">273,001</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 0in">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;">953,190</td><td style="width:1%;white-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 0in">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;">91,775</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 0in">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;">861,415</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=124258985&amp;loc=SL77919396-209981<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>51
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570615720">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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 0px 0px 0in">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;">(115,229</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;">(73,327</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: 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><td style="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;">52,377</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>52
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775571633192">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>HAREHOLDERS' EQUITY (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;"><strong>December 31, 2020</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 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">77,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.56</td><td style="width:1%;white-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 0in">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;">&#160;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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,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;">3.96</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">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;">-&#160;</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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;">(2,500</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.40</td><td style="width:1%;white-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 0in">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;">(5,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;">16.80</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 0in">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;">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><td style="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;">&#160;132,500</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.72</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="top.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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Remaining</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><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:9%;"><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:9%;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:9%;vertical-align:bottom;text-align:right;">3.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:9%;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: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></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;">2.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;">2.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.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.96</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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:#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.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;">3.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:#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.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;">4.10</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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:#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;">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="BORDER-BOTTOM: black 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: black 1px solid;vertical-align:bottom;text-align:right;">31,250</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: black 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: black 1px solid;vertical-align:bottom;text-align:right;">3.75</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: black 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: black 1px solid;vertical-align:bottom;text-align:right;">31,250</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: black 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;">7.06</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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="white-space: nowrap;"><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">&#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="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;">143,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;">2.89</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;">143,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;">2.66</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;"><strong>December 31, 2020</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 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Number of </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>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 0px 0px 0in; text-align:center;"><strong>Weighted Average </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,155,065</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="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.12</td><td style="width:1%;white-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 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">585,447</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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.97</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">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;">(76,796</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.77</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 0in">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;">(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><td style="width:1%;white-space: 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;">(614,583</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;">(6.40</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 0px 0px 0in">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;">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><td style="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,049,133</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.55</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="top.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 0px 0px 0in; 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"/><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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Average Weighted</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Remaining Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>Weighted Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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:9%;"><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: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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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.90</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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><td style="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></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;">158,125</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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.76</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">158,125</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">473,958</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">0.94</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">473,958</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">2.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;">2.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.36</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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,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;">0.82</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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,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.36</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.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;">1.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:#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.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;">4.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:#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.32</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">523,061</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">0.18</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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;">523,061</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#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.32</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;">8.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;">8.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,488</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.62</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,488</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;">3,381,021</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;">3.66</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;">3,381,021</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.22</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Custom Element.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the change in stock options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120381028&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 http://asc.fasb.org/extlink&amp;oid=6784392&amp;loc=d3e188667-122775<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>53
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570680664">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesAbstract', window );"><strong>CONTRACTS AND AGREEMENTS (Tables)</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="top.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:85%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong><span style="text-decoration:underline">Year Ended</span></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"><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></tr><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, 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%;vertical-align:bottom;white-space: nowrap;">$</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, 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:#cceeff"><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:#ffffff"><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:#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: 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;">90,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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_RestructuringAndRelatedActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775572004520">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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><td style="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;">151,709</td><td style="width:1%;white-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 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">84,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 0in">Director 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;">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:9%;vertical-align:bottom;text-align:right;">41,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 0px 0px 0in">Sales Tax 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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,784</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">Income Taxes Payable (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="width:1%;white-space: nowrap;"><p style="font-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;">77,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 0in">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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">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;">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><td style="width:1%;white-space: 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;">70,106</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 0in">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;">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><td style="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;">501,849</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>55
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570667752">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">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 0px 0px 0in">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">101,041</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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 0in">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;">(75,618</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;">(63,041</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 0in">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123368208&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>56
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775571633352">
<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, 2021</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">Current:</p></td><td 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">Federal</p></td><td style="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;">-</td><td style="width:1%;white-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">State</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></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%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">77,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">Foreign</p></td><td style="width:1%;white-space: 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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="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;">(74,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;">77,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:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in">Deferred:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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">Federal </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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">State</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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">Foreign</p></td><td style="width:1%;white-space: 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><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: 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 0px 0px 0in">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;">(74,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;">77,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>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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"><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 0px 0px 0in; 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 0px 0px 0in; 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;"><strong>December 31,</strong></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/><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 0px 0px 0in; 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/><td colspan="2" style="BORDER-BOTTOM: #000000 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 15px">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;">(<span style="background-color:#ffffff">4,509,585</span></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,468,166</td><td style="width:1%;white-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">Foreign</p></td><td style="width:1%;white-space: 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 0px 0px 0in">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;">(<span style="background-color:#ffffff">4,509,585</span></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,468,166</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="top.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><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;"><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 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>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: #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>2020</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="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;">(4,509,585</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,468,166</td><td style="width:1%;white-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">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 style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income tax expense 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;">(1,002,844</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,251,086</td><td style="width:1%;white-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">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,050,485</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 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%;vertical-align:bottom;text-align:right;">(60,646</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></tr><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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">876,676</td><td style="width:1%;white-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%;vertical-align:bottom;text-align:right;">(116,083</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%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</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">Meals and Entertainment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,300</td><td style="width:1%;white-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</p></td><td style="width:1%;white-space: 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><td style="width:1%;white-space: 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,577</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">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;">(74,086</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;">77,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>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 0px 0px 0in; 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 0px 0px 0in; 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: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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><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 0px 0px 0in; text-align:center;"><strong>2020</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 0px 0px 0in">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;">109,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">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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">82,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">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:#ffffff"><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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><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;">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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">290,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,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><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-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,100,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;">(4,941,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;">(3,530,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;">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><td style="width:1%;white-space: 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;">482,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;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;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 0in">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;">(277,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;">(290,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;">(147,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;">(192,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;">(424,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;">(482,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 0px 0px 15px">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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>57
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570747096">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">$ (4,435,499)<span></span>
</td>
<td class="nump">$ 4,391,166<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="top.Show.showAR( this, 'defref_tomz_InterestOnConvertibleDebt', window );">Interest on convertible debt</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">40,689<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="top.Show.showAR( this, 'defref_tomz_NetLossAttributableToCommonShareholders', window );">Net Income (Loss) Attributable to Common Shareholders</a></td>
<td class="num">$ (4,435,599)<span></span>
</td>
<td class="nump">$ 4,431,855<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic</a></td>
<td class="nump">17,538,994<span></span>
</td>
<td class="nump">16,512,126<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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted</a></td>
<td class="nump">17,538,994<span></span>
</td>
<td class="nump">18,757,509<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_tomz_Basic', window );">Basic</a></td>
<td class="num">$ (0.25)<span></span>
</td>
<td class="nump">$ 0.27<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="top.Show.showAR( this, 'defref_tomz_Diluted', window );">Diluted</a></td>
<td class="num">$ (0.25)<span></span>
</td>
<td class="nump">$ 0.23<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_InterestOnConvertibleDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_InterestOnConvertibleDebt</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_NetLossAttributableToCommonShareholders">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Custom Element.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124509347&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124509347&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>58
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570713912">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">$ (4,435,499)<span></span>
</td>
<td class="nump">$ 4,391,166<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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic Weighted-Average Shares</a></td>
<td class="nump">17,538,994<span></span>
</td>
<td class="nump">16,512,126<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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted Weighted Average Shares</a></td>
<td class="nump">17,538,994<span></span>
</td>
<td class="nump">18,757,509<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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic</a></td>
<td class="num">$ (0.25)<span></span>
</td>
<td class="nump">$ 0.27<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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted</a></td>
<td class="num">$ (0.25)<span></span>
</td>
<td class="nump">$ 0.23<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=tomz_DilutedNetIncomeorLossMember', window );">Diluted Net Income or Loss [Member]</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="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">$ (4,435,599)<span></span>
</td>
<td class="nump">$ 4,391,166<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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic Weighted-Average Shares</a></td>
<td class="nump">17,538,994<span></span>
</td>
<td class="nump">16,512,126<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="top.Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants', window );">Warrants</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">2,049,133<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="top.Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities', window );">Convertible Debt</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="top.Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Options</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">132,500<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="top.Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements', window );">Preferred Stock</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">63,750<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="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted Weighted Average Shares</a></td>
<td class="nump">17,538,994<span></span>
</td>
<td class="nump">18,757,509<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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic</a></td>
<td class="num">$ (0.25)<span></span>
</td>
<td class="nump">$ 0.27<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="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted</a></td>
<td class="num">$ (0.25)<span></span>
</td>
<td class="nump">$ 0.23<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_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://asc.fasb.org/extlink&amp;oid=125512782&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 http://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 http://asc.fasb.org/extlink&amp;oid=125512782&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=125512782&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 http://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 http://asc.fasb.org/extlink&amp;oid=125512782&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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncrementalCommonSharesAttributableToCallOptionsAndWarrants">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of call options and warrants using the treasury stock method.</p></div>
<a href="javascript:void(0);" onclick="top.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 45<br> -Paragraph 26<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1828-109256<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 23<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1757-109256<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 45<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1707-109256<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 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants</td>
</tr>
<tr>
<td style="padding-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_IncrementalCommonSharesAttributableToConversionOfDebtSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of convertible debt securities using the if-converted method.</p></div>
<a href="javascript:void(0);" onclick="top.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 45<br> -Paragraph 40<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1930-109256<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 42<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e2029-109256<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 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities</td>
</tr>
<tr>
<td style="padding-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_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of equity unit purchase agreements using the treasury stock method.</p></div>
<a href="javascript:void(0);" onclick="top.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 45<br> -Paragraph 23<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1757-109256<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 22<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1707-109256<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 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements</td>
</tr>
<tr>
<td style="padding-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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.</p></div>
<a href="javascript:void(0);" onclick="top.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 45<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1707-109256<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 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<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 45<br> -Paragraph 28A<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1500-109256<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 23<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1757-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123482062&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123367319&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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124509347&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124509347&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=125511455&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=tomz_DilutedNetIncomeorLossMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=tomz_DilutedNetIncomeorLossMember</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>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775573563000">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Net Revenue</a></td>
<td class="nump">$ 7,753,582<span></span>
</td>
<td class="nump">$ 25,027,637<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">United States</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="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Net Revenue</a></td>
<td class="nump">6,403,000<span></span>
</td>
<td class="nump">18,367,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="top.Show.showAR( this, 'defref_tomz_ChangesInRevenue', window );">Changes in revenue</a></td>
<td class="num">(11,964,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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=tomz_InternationalMember', window );">International</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="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Net Revenue</a></td>
<td class="nump">1,351,000<span></span>
</td>
<td class="nump">6,661,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="top.Show.showAR( this, 'defref_tomz_ChangesInRevenue', window );">Changes in revenue</a></td>
<td class="nump">5,310,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="top.Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tomz_SteraMistProductMember', window );">SteraMist Product</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="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Net Revenue</a></td>
<td class="nump">6,179,000<span></span>
</td>
<td class="nump">22,971,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="top.Show.showAR( this, 'defref_tomz_ChangesInRevenue', window );">Changes in revenue</a></td>
<td class="num">(16,792,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="top.Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tomz_ServiceAndTrainingMember', window );">Service and Training</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="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Net Revenue</a></td>
<td class="nump">1,575,000<span></span>
</td>
<td class="nump">2,057,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="top.Show.showAR( this, 'defref_tomz_ChangesInRevenue', window );">Changes in revenue</a></td>
<td class="num">(482,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="top.Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tomz_ProductAndServiceRevenueMember', window );">Product And Service Revenue</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="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Net Revenue</a></td>
<td class="nump">7,754,000<span></span>
</td>
<td class="nump">25,028,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="top.Show.showAR( this, 'defref_tomz_ChangesInRevenue', window );">Changes in revenue</a></td>
<td class="num">(17,274,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="top.Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tomz_RevenueByGeographicRegionMember', window );">Revenue By Geographic Region</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="top.Show.showAR( this, 'defref_us-gaap_Revenues', window );">Net Revenue</a></td>
<td class="nump">7,754,000<span></span>
</td>
<td class="nump">$ 25,028,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="top.Show.showAR( this, 'defref_tomz_ChangesInRevenue', window );">Changes in revenue</a></td>
<td class="num">$ (17,274,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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=124359900&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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</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_IncomeTaxAuthorityAxis=tomz_InternationalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_IncomeTaxAuthorityAxis=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>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ProductAndServiceRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ProductAndServiceRevenueMember</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_RevenueByGeographicRegionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RevenueByGeographicRegionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775565406808">
<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">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Sep. 30, 2020</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Jul. 07, 2017</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Bad Debt Expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,605,660<span></span>
</td>
<td class="nump">$ 332,027<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="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Allowance for Doubtful Accounts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,678,000<span></span>
</td>
<td class="nump">390,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="top.Show.showAR( this, 'defref_us-gaap_InventoryValuationReserves', window );">Inventory Reserve</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<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="top.Show.showAR( this, 'defref_us-gaap_CapitalizedComputerSoftwareAmortization1', window );">Amortization of Capitalized Software Development Costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">41,900<span></span>
</td>
<td class="nump">41,900<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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves', window );">Warranty Reserve</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">68,000<span></span>
</td>
<td class="nump">68,000<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="top.Show.showAR( this, 'defref_us-gaap_AdvertisingExpense', window );">Advertising and Promotional Expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">701,000<span></span>
</td>
<td class="nump">276,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="top.Show.showAR( this, 'defref_tomz_ResearchAndDevelopmentsExpense', window );">Research and Development Expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 573,000<span></span>
</td>
<td class="nump">455,000<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="top.Show.showAR( this, 'defref_us-gaap_FederalDepositInsuranceCorporationPremiumExpense', window );">Cash balances at financial institutions</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">$ 250,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="top.Show.showAR( this, 'defref_tomz_CommonStockIssuableUponConversionOfOutstandingShares', window );">Common stock issuable upon conversion of outstanding shares</a></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>
<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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration Risk, Percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.00%<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="top.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="nump">250,000,000<span></span>
</td>
<td class="nump">250,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.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="nump">3,600,000<span></span>
</td>
<td class="nump">3,600,000.0<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="top.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="nump">2,200,000<span></span>
</td>
<td class="nump">2,200,000.0<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="top.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>
<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="top.Show.showAR( this, 'defref_tomz_CommonStockSharesIssuedVested', window );">Common stock, shares issued</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="nump">50,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="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Potentially Dilutive Securities</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>
<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="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock shares</a></td>
<td class="nump">1,000,000<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>
<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="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Potentially Dilutive Securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">143,000<span></span>
</td>
<td class="nump">132,500<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="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Potentially Dilutive Securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,381,021<span></span>
</td>
<td class="nump">2,049,133<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="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration Risk, Percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">65.00%<span></span>
</td>
<td class="nump">76.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="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration Risk, Percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">53.00%<span></span>
</td>
<td class="nump">32.00%<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_CommonStockIssuableUponConversionOfOutstandingShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ResearchAndDevelopmentsExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=6420018&amp;loc=d3e36677-107848<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124255206&amp;loc=SL82895884-210446<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_CapitalizedComputerSoftwareAmortization1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128487-111756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation reserve for inventory.</p></div>
<a href="javascript:void(0);" onclick="top.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 2<br> -Subparagraph (SAB TOPIC 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<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(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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=tomz_StockOptionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775566867784">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoods', window );">Finished Goods</a></td>
<td class="nump">$ 4,293,080<span></span>
</td>
<td class="nump">$ 3,404,025<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="top.Show.showAR( this, 'defref_us-gaap_InventoryRawMaterials', window );">Raw Materials</a></td>
<td class="nump">450,200<span></span>
</td>
<td class="nump">377,490<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="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventory</a></td>
<td class="nump">$ 4,743,280<span></span>
</td>
<td class="nump">$ 3,781,515<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://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 http://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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570572344">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DepositsAbstract', window );"><strong>VENDOR DEPOSITS (Details Narrative)</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="top.Show.showAR( this, 'defref_us-gaap_DepositsAssetsCurrent', window );">Vendor Deposits</a></td>
<td class="nump">$ 288,586<span></span>
</td>
<td class="nump">$ 388,712<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_DepositsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepositsAbstract</td>
</tr>
<tr>
<td style="padding-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_DepositsAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570893208">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FurnitureAndFixturesGross', window );">Furniture and Fixtures</a></td>
<td class="nump">$ 357,236<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="top.Show.showAR( this, 'defref_tomz_Equipments', window );">Equipment</a></td>
<td class="nump">1,688,236<span></span>
</td>
<td class="nump">1,580,743<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="top.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="top.Show.showAR( this, 'defref_tomz_ComputerSoftware', window );">Computer and Software</a></td>
<td class="nump">232,017<span></span>
</td>
<td class="nump">203,704<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="top.Show.showAR( this, 'defref_us-gaap_LeaseholdImprovementsGross', window );">Leasehold Improvements</a></td>
<td class="nump">386,120<span></span>
</td>
<td class="nump">386,120<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross', window );">Capitalized Costs in Progress - Tooling and Molds</a></td>
<td class="nump">376,864<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and Equipment, Gross</a></td>
<td class="nump">3,506,176<span></span>
</td>
<td class="nump">2,993,507<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="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: Accumulated Depreciation</a></td>
<td class="nump">2,017,857<span></span>
</td>
<td class="nump">1,695,404<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="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and Equipment, Net</a></td>
<td class="nump">$ 1,488,319<span></span>
</td>
<td class="nump">$ 1,298,103<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.14)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123377692&amp;loc=d3e61901-109447<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 45<br> -Paragraph 4<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6812-107765<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 http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.13)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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(14))<br> -URI http://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> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<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)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&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 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<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(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: 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 http://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>64
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570488856">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation</a></td>
<td class="nump">$ 283,259<span></span>
</td>
<td class="nump">$ 342,523<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="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>65
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775571518648">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intellectual Property and Patents</a></td>
<td class="nump">$ 3,065,584<span></span>
</td>
<td class="nump">$ 3,000,012<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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Less: Accumulated Amortization</a></td>
<td class="nump">2,868,397<span></span>
</td>
<td class="nump">2,856,991<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="top.Show.showAR( this, 'defref_tomz_IntangibleAssetsNet', window );">Intangible Assets, Net</a></td>
<td class="nump">$ 197,187<span></span>
</td>
<td class="nump">$ 143,021<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>66
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775573098136">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IndefiniteLivedTrademarks', window );">Trademarks</a></td>
<td class="nump">$ 759,097<span></span>
</td>
<td class="nump">$ 578,895<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Total Intangible Assets, Net</a></td>
<td class="nump">$ 956,284<span></span>
</td>
<td class="nump">$ 722,916<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>67
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775574746680">
<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, 2021 </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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">December 31, 2022</a></td>
<td class="nump">$ 10,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">December 31, 2023</a></td>
<td class="nump">10,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">December 31, 2024</a></td>
<td class="nump">10,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">December 31, 2025</a></td>
<td class="nump">10,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">December 31, 2026</a></td>
<td class="nump">10,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Thereafter</a></td>
<td class="nump">147,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="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Intangible Assets, Net</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>68
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570655640">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization Expense</a></td>
<td class="nump">$ 11,406<span></span>
</td>
<td class="nump">$ 377,237<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://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 http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>69
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775571540920">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease Right of Use Asset</a></td>
<td class="nump">$ 583,271<span></span>
</td>
<td class="nump">$ 631,527<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current Portion of Long-Term Operating Lease</a></td>
<td class="nump">91,775<span></span>
</td>
<td class="nump">81,223<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-Term Operating Lease, Net of Current Portion</a></td>
<td class="nump">861,415<span></span>
</td>
<td class="nump">953,190<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Total</a></td>
<td class="nump">$ 953,190<span></span>
</td>
<td class="nump">$ 1,034,413<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>70
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570549608">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease expense. Excludes sublease income.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918638-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>71
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775574385192">
<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>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm', window );">Weighted-Average Remaining Lease Term: Operating Leases</a></td>
<td class="text">7.25 years<span></span>
</td>
<td class="text">8.25 years<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseDiscountRate', window );">Discount Rate: Operating Leases</a></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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918673-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>72
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570628488">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm', window );">Cash paid for amounts included in the measurement of lease liabilities:</a></td>
<td class="nump">$ 151,088<span></span>
</td>
<td class="nump">$ 146,688<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408481&amp;loc=SL77919140-209958<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>73
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775573584104">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">December 31, 2022</a></td>
<td class="nump">$ 155,621<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">December 31, 2023</a></td>
<td class="nump">160,290<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">December 31, 2024</a></td>
<td class="nump">165,098<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">December 31, 2025</a></td>
<td class="nump">170,051<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">December 31, 2026</a></td>
<td class="nump">175,153<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="nump">399,978<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total minimum lease payments</a></td>
<td class="nump">1,226,191<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="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: interest</a></td>
<td class="nump">273,001<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Present value of lease obligations</a></td>
<td class="nump">953,190<span></span>
</td>
<td class="nump">$ 1,034,413<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Less: current portion</a></td>
<td class="nump">91,775<span></span>
</td>
<td class="nump">81,223<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="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Long-term portion of lease obligations</a></td>
<td class="nump">$ 861,415<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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123408670&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>74
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775664076968">
<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, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Area of land held.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123406913&amp;loc=d3e41499-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=124506351&amp;loc=d3e14931-158439<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>75
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775573383224">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization', window );">Less: Accumulated Amortization</a></td>
<td class="num">(115,229)<span></span>
</td>
<td class="num">(73,327)<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="top.Show.showAR( this, 'defref_us-gaap_CapitalizedComputerSoftwareNet', window );">Capitalized Software Development Costs, Net</a></td>
<td class="nump">$ 10,475<span></span>
</td>
<td class="nump">$ 52,377<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>76
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570679528">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_CapitalizedComputerSoftwareAmortization1', window );">Amortization of Capitalized Software Development Costs</a></td>
<td class="nump">$ 41,900<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_us-gaap_CapitalizedComputerSoftwareAmortization1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128487-111756<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_CapitalizedComputerSoftwareNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>77
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775573402104">
<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>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>May 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssets', window );">Prepaid expenses and other assets</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">$ 66,857<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="top.Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSoldAmortization', window );">Amortization expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 14,232<span></span>
</td>
<td class="nump">$ 17,745<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_AnnualPaymentsOnContractTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-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_CostOfGoodsAndServicesSoldAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775566052280">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_tomz_OutstandingBeginningOfPeriod', window );">Outstanding, beginning of period</a></td>
<td class="nump">132,500<span></span>
</td>
<td class="nump">77,500<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted</a></td>
<td class="nump">10,500<span></span>
</td>
<td class="nump">62,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="top.Show.showAR( this, 'defref_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod', window );">Exercised</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">2,500<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod', window );">Expired</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(5,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="top.Show.showAR( this, 'defref_tomz_OutstandingEndOfPeriod', window );">Outstanding, end 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="top.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="top.Show.showAR( this, 'defref_tomz_WeightedAverageExercisePriceOutstandingBeginningBalance', window );">Weighted average exercise price outstanding, Beginning balance</a></td>
<td class="nump">$ 2.72<span></span>
</td>
<td class="nump">$ 2.56<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="top.Show.showAR( this, 'defref_tomz_WeightedAverageExercisePriceGranted', window );">Weighted average exercise price, Granted</a></td>
<td class="nump">1.93<span></span>
</td>
<td class="nump">3.96<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="top.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.40<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="top.Show.showAR( this, 'defref_tomz_WeightedAverageExercisePriceExpired', window );">Weighted average exercise price, Expired</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">16.80<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="top.Show.showAR( this, 'defref_tomz_WeightedAverageExercisePriceOutstandingEndingBalance', window );">Weighted average exercise price outstanding, Ending balance</a></td>
<td class="nump">$ 2.66<span></span>
</td>
<td class="nump">$ 2.72<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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)(iv)(3)-(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>79
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775565207720">
<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, 2021 </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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">143,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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">2 years 10 months 20 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">143,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 2.66<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">4 years 11 months 15 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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">3 years 2 months 12 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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">2 years 3 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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">2 years 7 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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeFiveMember', window );">$2.16</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">5,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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">3 years<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="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeSixMember', window );">$4.40</a></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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">12,500<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">4 years 1 month 6 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="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">3 years 9 months<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</table>
<div style="display: none;">
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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> -URI http://asc.fasb.org/extlink&amp;oid=120381028&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)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_RangeFourMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RangeOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RangeTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RangeThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RangeFiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RangeSixMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RangeSixMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775566770200">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details 2) - $ / shares<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, end of period</a></td>
<td class="nump">143,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="top.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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, beginning of period</a></td>
<td class="nump">2,049,133<span></span>
</td>
<td class="nump">2,155,065<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted</a></td>
<td class="nump">1,606,888<span></span>
</td>
<td class="nump">585,447<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="top.Show.showAR( this, 'defref_tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod', window );">Exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(76,796)<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod', window );">Expired</a></td>
<td class="num">(262,500)<span></span>
</td>
<td class="num">(614,583)<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, end 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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted average exercise price, beginning of period</a></td>
<td class="nump">$ 2.55<span></span>
</td>
<td class="nump">$ 3.12<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Granted</a></td>
<td class="nump">1.73<span></span>
</td>
<td class="nump">4.97<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Exercised</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">2.77<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Expired</a></td>
<td class="nump">2.65<span></span>
</td>
<td class="nump">6.40<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted average exercise price, end of period</a></td>
<td class="nump">$ 2.22<span></span>
</td>
<td class="nump">$ 2.55<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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)(iv)(3)-(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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> -URI http://asc.fasb.org/extlink&amp;oid=120381028&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)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>81
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775566541320">
<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, 2021 </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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">2 years 10 months 20 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">143,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 2.66<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsOneMember', window );">$ 0.64</a></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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">1 year 10 months 24 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">31,250<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="top.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="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsTwoMember', window );">$ 0.80</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">158,125<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">1 year 9 months 3 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">158,125<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="top.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="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsThreeMember', window );">$ 0.96</a></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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">473,958<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">11 months 8 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">473,958<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="top.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="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsFourMember', window );">$ 1.12</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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">2 years 3 months 18 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">6,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="top.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="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsFiveMember', window );">$ 1.20</a></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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">2 years 10 months 17 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">175,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="top.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="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsSixMember', window );">$ 1.36</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">1,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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">9 months 25 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">1,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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 1.36<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">1 year 9 months<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">172,167<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">4 years 9 months<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsNineMember', window );">$ 2.32</a></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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">523,061<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">2 months 4 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">523,061<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 2.32<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsTenMember', window );">$ 4.00</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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">8 years 3 months 25 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">28,750<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="top.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="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsElevenMember', window );">$ 6.95</a></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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">8 years 9 months<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">375,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="top.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="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsTwelveMember', window );">$ 8.40</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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">1,488<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">1 year 7 months 13 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">1,488<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="top.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>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightAxis=tomz_WarrantsMember', window );">Warrants</a></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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">3,381,021<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="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years</a></td>
<td class="text">3 years 7 months 28 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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">3,381,021<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></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_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120381028&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 http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_WarrantsSixMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_WarrantsSixMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_WarrantsNineMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_WarrantsNineMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>82
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775560534952">
<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="5">1 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Feb. 11, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Oct. 31, 2020</div></th>
<th class="th"><div>Aug. 31, 2020</div></th>
<th class="th"><div>Feb. 29, 2020</div></th>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Aug. 30, 2020</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityReverseStockSplit', window );">Reverse stock split</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">reverse stock split of our common stock and our Convertible Series A Preferred Stock, in each case, at a ratio of 1-for-8 and without any change to the respective par value thereof (the &#8220;Reverse Stock Split&#8221;), and, on September 10, 2020<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="top.Show.showAR( this, 'defref_tomz_CommonStockShareSold', window );">Common stock share sold</a></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>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_tomz_IssuedWarrantsInConcurrentPrivatePlacement', window );">Issued warrants in concurrent private placement</a></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>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_tomz_IssuedWarrantsInConcurrentPlacementAgent', window );">Issued warrants in concurrent placement agent</a></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>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_tomz_ExercisePrice', window );">Exercise price</a></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>
<td class="text">&#160;<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.80<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="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfWarrants', window );">Proceeds from issuance of warrants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,581,651<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">$ 4,581,651<span></span>
</td>
<td class="nump">$ 0<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="top.Show.showAR( this, 'defref_tomz_ExercisePriceOfWarrant', window );">Exercise price of warrant</a></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>
<td class="text">&#160;<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="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Common stock shares fully vested, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50,000<span></span>
</td>
<td class="nump">500<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="top.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>
<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="top.Show.showAR( this, 'defref_tomz_CommonStockSharesFullyVestedAmount', window );">Common stock shares fully vested, amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 48,000<span></span>
</td>
<td class="nump">$ 2,190<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="top.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>
<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="top.Show.showAR( this, 'defref_tomz_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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,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="top.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="text">&#160;<span></span>
</td>
<td class="nump">$ 196,810<span></span>
</td>
<td class="nump">$ 167,615<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="top.Show.showAR( this, 'defref_us-gaap_AwardDateAxis=tomz_MarchTwentyTwentyMember', window );">March 2020 [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>
<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="top.Show.showAR( this, 'defref_tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares', window );">Common stock shares issued upon conversion of convertible notes payable, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,041,667<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="top.Show.showAR( this, 'defref_tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount', window );">Common stock shares issued upon conversion of convertible notes payable, amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,500,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="top.Show.showAR( this, 'defref_us-gaap_ConversionOfStockSharesConverted1', window );">Common stock shares issued upon exercise of warrants, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,417<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="top.Show.showAR( this, 'defref_us-gaap_ConversionOfStockAmountConverted1', window );">Common stock shares issued upon exercise of warrants, amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 57,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardDateAxis=tomz_JulyTwentyTwentyMember', window );">July 2020 [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>
<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="top.Show.showAR( this, 'defref_us-gaap_ConversionOfStockSharesConverted1', window );">Common stock shares issued upon exercise of warrants, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,940<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="top.Show.showAR( this, 'defref_us-gaap_ConversionOfStockAmountConverted1', window );">Common stock shares issued upon exercise of warrants, amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 62,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardDateAxis=tomz_OctoberTwoThousandTwentyMember', window );">October 2020 [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>
<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="top.Show.showAR( this, 'defref_us-gaap_ConversionOfStockSharesConverted1', window );">Common stock shares issued upon exercise of warrants, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,500<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="top.Show.showAR( this, 'defref_us-gaap_ConversionOfStockAmountConverted1', window );">Common stock shares issued upon exercise of warrants, amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 30,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="top.Show.showAR( this, 'defref_us-gaap_AwardDateAxis=tomz_JuneTwentyTwentyMember', window );">June 2020 [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>
<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="top.Show.showAR( this, 'defref_us-gaap_ConversionOfStockSharesConverted1', window );">Common stock shares issued upon exercise of warrants, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26,940<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="top.Show.showAR( this, 'defref_us-gaap_ConversionOfStockAmountConverted1', window );">Common stock shares issued upon exercise of warrants, amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 62,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardDateAxis=tomz_MayTwentyTwentyMember', window );">May 2020 [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>
<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="top.Show.showAR( this, 'defref_tomz_CommonStockSharesIssuedUponExerciseOfOptionShares', window );">Common stock shares issued upon exercise of option, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,500<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="top.Show.showAR( this, 'defref_tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount', window );">Common stock shares issued upon exercise of option, amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,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="top.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>
<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="top.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="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="top.Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 228,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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="top.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>
<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="top.Show.showAR( this, 'defref_tomz_ExercisePriceOfWarrant', window );">Exercise price of warrant</a></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>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_WarrantsAndRightsOutstanding', window );">Warrant issued</a></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>
<td class="text">&#160;<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="top.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>
<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="top.Show.showAR( this, 'defref_tomz_ExercisePriceOfWarrant', window );">Exercise price of warrant</a></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>
<td class="text">&#160;<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="top.Show.showAR( this, 'defref_us-gaap_WarrantsAndRightsOutstanding', window );">Warrant issued</a></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>
<td class="text">&#160;<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="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000,000<span></span>
</td>
<td class="nump">1,000,000<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="top.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="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>
<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="top.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="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>
<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="top.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="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>
<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="top.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>
<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="top.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="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>
<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="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 1,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="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=tomz_StockWarrantMember', window );">Stock Warrant [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>
<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="top.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="text">&#160;<span></span>
</td>
<td class="nump">$ 7.14<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.72<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="top.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="text">&#160;<span></span>
</td>
<td class="nump">595<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,208<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="top.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="text">&#160;<span></span>
</td>
<td class="nump">166.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">135.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="nump">0.00%<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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="nump">0.13%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.58%<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="top.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">&#160;<span></span>
</td>
<td class="text">3 years<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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.96<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8.40<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="top.Show.showAR( this, 'defref_tomz_FairValueOfStockWarrant', window );">Fair value of stock 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">$ 4,249<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,594<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="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=tomz_StockWarrantMember', window );">Stock Warrant [Member] | CEO [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>
<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="top.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="text">&#160;<span></span>
</td>
<td class="nump">$ 7.13<span></span>
</td>
<td class="nump">$ 0.96<span></span>
</td>
<td class="nump">$ 1.04<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="top.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="text">&#160;<span></span>
</td>
<td class="nump">893<span></span>
</td>
<td class="nump">18,750<span></span>
</td>
<td class="nump">156,250<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="top.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="text">&#160;<span></span>
</td>
<td class="nump">166.00%<span></span>
</td>
<td class="nump">155.00%<span></span>
</td>
<td class="nump">136.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="nump">0.13%<span></span>
</td>
<td class="nump">1.64%<span></span>
</td>
<td class="nump">1.64%<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="top.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">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">3 years<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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.20<span></span>
</td>
<td class="nump">$ 1.20<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8.40<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="top.Show.showAR( this, 'defref_tomz_FairValueOfStockWarrant', window );">Fair value of stock 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">$ 6,372<span></span>
</td>
<td class="nump">$ 18,571<span></span>
</td>
<td class="nump">$ 164,201<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="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=tomz_StockWarrantMember', window );">Stock Warrant [Member] | CEO [Member] | April 2020 [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>
<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="top.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="text">&#160;<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.00<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="top.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="text">&#160;<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">12,500<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="top.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="text">&#160;<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">173.00%<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="top.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="text">&#160;<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.00%<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="top.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="text">&#160;<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.68%<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="top.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">&#160;<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">10 years<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="top.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="text">&#160;<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.00<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="top.Show.showAR( this, 'defref_tomz_FairValueOfStockWarrant', window );">Fair value of stock 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 49,693<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="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=tomz_StockWarrantMember', window );">Stock Warrant [Member] | CEO [Member] | October 2020 [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>
<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="top.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="text">&#160;<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">$ 6.99<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="top.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="text">&#160;<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">375,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="top.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="text">&#160;<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">162.00%<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="top.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="text">&#160;<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.00%<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="top.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="text">&#160;<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.67%<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="top.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">&#160;<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">10 years<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="top.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="text">&#160;<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">$ 6.95<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="top.Show.showAR( this, 'defref_tomz_FairValueOfStockWarrant', window );">Fair value of stock 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,621,196<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="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=tomz_StockOptionsMember', window );">Stock Options | CEO [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>
<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="top.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">$ 6.47<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.80<span></span>
</td>
<td class="nump">$ 1.75<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="top.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">154.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">135.00%<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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="nump">0.00%<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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">0.67%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.64%<span></span>
</td>
<td class="nump">1.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">31,250<span></span>
</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="nump">10,500<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="top.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">$ 202,104<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 23,595<span></span>
</td>
<td class="nump">$ 18,354<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="top.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">5 years<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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 7.06<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.96<span></span>
</td>
<td class="nump">$ 1.93<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="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=tomz_StockWarrantOneMember', window );">Stock Warrant 1 [Member] | CEO [Member] | April 2020 [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>
<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="top.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="text">&#160;<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.00<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="top.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="text">&#160;<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">6,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="top.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="text">&#160;<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">173.00%<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="top.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="text">&#160;<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.00%<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="top.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="text">&#160;<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.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="top.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">&#160;<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">10 years<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="top.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="text">&#160;<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.00<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="top.Show.showAR( this, 'defref_tomz_FairValueOfStockWarrant', window );">Fair value of stock 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 24,846<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="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=tomz_StockWarrantTwoMember', window );">Stock Warrant 2 [Member] | CEO [Member] | April 2020 [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>
<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="top.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="text">&#160;<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.00<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="top.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="text">&#160;<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">6,250<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="top.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="text">&#160;<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">173.00%<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="top.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="text">&#160;<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.00%<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="top.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="text">&#160;<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.68%<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="top.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">&#160;<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">10 years<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="top.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="text">&#160;<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.00<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="top.Show.showAR( this, 'defref_tomz_FairValueOfStockWarrant', window );">Fair value of stock 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 24,846<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="top.Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=tomz_StockWarrantThreeMember', window );">Stock Warrant 3 [Member] | CEO [Member] | April 2020 [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>
<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="top.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="text">&#160;<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.00<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="top.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="text">&#160;<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">3,750<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="top.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="text">&#160;<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">173.00%<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="top.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="text">&#160;<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.00%<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="top.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="text">&#160;<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.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="top.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">&#160;<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">10 years<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="top.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="text">&#160;<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.00<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="top.Show.showAR( this, 'defref_tomz_FairValueOfStockWarrant', window );">Fair value of stock 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 14,908<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CommonStockSharesFullyVestedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CommonStockSharesFullyVestedAmount</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_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount</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_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares</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_CommonStockSharesIssuedUponExerciseOfOptionAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CommonStockSharesIssuedUponExerciseOfOptionAmount</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_CommonStockSharesIssuedUponExerciseOfOptionShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_CommonStockSharesIssuedUponExerciseOfOptionShares</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_ExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ExercisePrice</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_ExercisePriceOfWarrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_FairValueOfStockWarrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_FairValueOfStockWarrant</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_GrantFairValueOfPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_Preferredstockparorstatedvaluepershare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_Preferredstockparorstatedvaluepershare</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_WarrantAmendmentDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ConversionOfStockAmountConverted1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The value of the stock converted 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="top.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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4313-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 5<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4332-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 http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4304-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConversionOfStockAmountConverted1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ConversionOfStockSharesConverted1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares converted 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="top.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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4313-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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4304-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 http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4332-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConversionOfStockSharesConverted1</td>
</tr>
<tr>
<td style="padding-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_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.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)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 (f)(2)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 (f)(2)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 (f)(2)(iv)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 (f)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=120381028&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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=122041274&amp;loc=d3e301413-122809<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_StockholdersEquityReverseStockSplit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Description of the reverse stock split arrangement. Also provide the retroactive effect given by the reverse split that occurs after the balance sheet date but before the release of financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.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 4<br> -Subparagraph (SAB Topic 4.C)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187143-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityReverseStockSplit</td>
</tr>
<tr>
<td style="padding-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_WarrantsAndRightsOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_us-gaap_AwardDateAxis=tomz_MarchTwentyTwentyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MarchTwentyTwentyMember</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_JulyTwentyTwentyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_JulyTwentyTwentyMember</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_OctoberTwoThousandTwentyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_OctoberTwoThousandTwentyMember</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_JuneTwentyTwentyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_JuneTwentyTwentyMember</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_MayTwentyTwentyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_MayTwentyTwentyMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StatementClassOfStockAxis=tomz_StockWarrantMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AwardDateAxis=tomz_AprilTwentyTwentyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_AprilTwentyTwentyMember</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_OctoberwentyTwentyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_OctoberwentyTwentyMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StatementClassOfStockAxis=tomz_StockWarrantOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StockWarrantOneMember</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_StockWarrantTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StockWarrantTwoMember</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_StockWarrantThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_StockWarrantThreeMember</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>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570611288">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>COMMITMENTS AND CONTINGENCIES (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>COMMITMENTS AND CONTINGENCIES</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="top.Show.showAR( this, 'defref_us-gaap_ProductLiabilityContingencyAccrualPresentValue', window );">Claims against product liability</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_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ProductLiabilityContingencyAccrualPresentValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of the accrual for product liability loss contingencies as of the balance sheet date (if the accrual qualifies for discounting).</p></div>
<a href="javascript:void(0);" onclick="top.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 450<br> -SubTopic 20<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.Y.Q1)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011672&amp;loc=d3e149879-122751<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductLiabilityContingencyAccrualPresentValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775570589976">
<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>Sep. 30, 2021 </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="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>CONTRACTS AND AGREEMENTS (Details)</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="top.Show.showAR( this, 'defref_us-gaap_ContractualObligationDueInNextTwelveMonths', window );">December 31, 2022</a></td>
<td class="nump">$ 30,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="top.Show.showAR( this, 'defref_us-gaap_ContractualObligationDueInSecondYear', window );">December 31, 2023</a></td>
<td class="nump">30,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="top.Show.showAR( this, 'defref_us-gaap_ContractualObligationDueInThirdYear', window );">December 31, 2024</a></td>
<td class="nump">30,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="top.Show.showAR( this, 'defref_us-gaap_ContractualObligationDueInFourthYear', window );">December 31, 2025</a></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="top.Show.showAR( this, 'defref_us-gaap_ContractualObligation', window );">Total Minimum Payments</a></td>
<td class="nump">$ 90,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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_ContractualObligationDueInNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of contractual obligation 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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractualObligationDueInNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775566430040">
<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>
</tr>
<tr>
<th class="th"><div>Sep. 22, 2020</div></th>
<th class="th"><div>Dec. 31, 2017</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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles', window );">Vehicle allowance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 60,703<span></span>
</td>
<td class="nump">$ 60,703<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="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">50,000<span></span>
</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="top.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">$ 48,000<span></span>
</td>
<td class="nump">$ 48,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="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles', window );">Vehicle allowance</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<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="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="nump">93,750<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="top.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="nump">93,750<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="top.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="nump">30,409<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="top.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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SalariesAndWages', window );">Base annual salary</a></td>
<td class="nump">$ 500,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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightOutstanding', window );">Warrants</a></td>
<td class="nump">375,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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_tomz_IssuanceOfOptionToPurchaseSharesOfCommonStock', window );">Issuance of option to purchase shares of common stock</a></td>
<td class="nump">31,250<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="top.Show.showAR( this, 'defref_tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile', window );">Reimburse of expenses associated with use of automobile</a></td>
<td class="nump">$ 750<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="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tomz_TwoThousandSixteenEquityPlanMember', window );">2016 Equity Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesOther', window );">Issuance of option to purchase shares of common stock</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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SaleOfStockPricePerShare', window );">Closing price per share</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">$ 7.06<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="top.Show.showAR( this, 'defref_tomz_WarrantsCancelled', window );">Warrants cancelled</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">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_IssuanceOfOptionToPurchaseSharesOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_IssuanceOfOptionToPurchaseSharesOfCommonStock</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_ReimburseOfExpensesAssociatedWithUseOfAutomobile">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Cost associated with reimbursable income. This occurs when a services entity incurs expenses on behalf of the client and passes through the cost of reimbursable expenses to a client.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ReimburseOfExpensesAssociatedWithUseOfAutomobile</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_TermOfAgreement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_tomz_WarrantsCancelled">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_WarrantsCancelled</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_us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21475-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of warrants or rights outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://asc.fasb.org/extlink&amp;oid=6457730&amp;loc=d3e39549-107864<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_PublicUtilitiesPropertyPlantAndEquipmentVehicles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123367319&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_SaleOfStockPricePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Per share amount received by subsidiary or equity investee for each share of common stock issued or sold in the stock transaction.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SaleOfStockPricePerShare</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_StockIssuedDuringPeriodSharesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares of stock issued attributable to transactions classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesOther</td>
</tr>
<tr>
<td style="padding-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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ExecutiveAgreementsWithElissaJShaneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TwoThousandSixteenEquityPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_TwoThousandSixteenEquityPlanMember</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>86
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775566786824">
<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, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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>
<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="top.Show.showAR( this, 'defref_us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent', window );">Commissions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 228,665<span></span>
</td>
<td class="nump">$ 151,709<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="top.Show.showAR( this, 'defref_us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent', window );">Payroll and related costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">241,434<span></span>
</td>
<td class="nump">84,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="top.Show.showAR( this, 'defref_tomz_DirectorFeesCurrentAndNoncurrent', window );">Director Fees</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">31,250<span></span>
</td>
<td class="nump">41,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="top.Show.showAR( this, 'defref_tomz_SalesTaxPayable', window );">Sales Tax Payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,411<span></span>
</td>
<td class="nump">9,784<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="top.Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxes', window );">Income Taxes Payable (Note 16)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">77,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="top.Show.showAR( this, 'defref_us-gaap_ExtendedProductWarrantyAccrualCurrent', window );">Accrued warranty (Note 14)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">68,000<span></span>
</td>
<td class="nump">68,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="top.Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent', window );">Other accrued expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">75,848<span></span>
</td>
<td class="nump">70,106<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="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities', window );">Total</a></td>
<td class="nump">$ 664,608<span></span>
</td>
<td class="nump">$ 664,608<span></span>
</td>
<td class="nump">$ 501,849<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_AccruedIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due.  This amount is the total of current and noncurrent accrued income taxes.</p></div>
<a href="javascript:void(0);" onclick="top.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)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -URI http://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 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32718-109319<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(20))<br> -URI http://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 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_AccruedLiabilitiesAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120398452&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 http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120400017&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 http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=120400017&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 http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>87
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775572210600">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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">$ 30,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="top.Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease', window );">Provision for warranty expense</a></td>
<td class="nump">75,618<span></span>
</td>
<td class="nump">101,041<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="top.Show.showAR( this, 'defref_tomz_SettlementOfWarrantyClaims', window );">Settlement of warranty claims</a></td>
<td class="num">(75,618)<span></span>
</td>
<td class="num">(63,041)<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="top.Show.showAR( this, 'defref_us-gaap_ExtendedProductWarrantyAccrual', window );">Ending accrued warranty costs</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123368208&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123368208&amp;loc=d3e12565-110249<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>88
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775574371512">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>LOAN PAYABLE (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, 2021</div></th>
<th class="th"><div>Apr. 21, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LoansPayableAbstract', window );"><strong>LOAN PAYABLE</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="top.Show.showAR( this, 'defref_tomz_ProceedsFromLoanFundingPaycheckProtectionProgram', window );">Loan funding from (Paycheck Protection Program)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 410,700<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="top.Show.showAR( this, 'defref_tomz_GainsLossOnExtinguishmentOfDebt', window );">Gain on extinguishment debt</a></td>
<td class="nump">$ 414,583<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="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">PPP Loan interest rate per annum on outstanding principal</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.00%<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="top.Show.showAR( this, 'defref_tomz_UnsecuredLoanPrincipalAmountOfCityNationalBank', window );">Unsecured loan principal amount of City National Bank</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 410,700<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_GainsLossOnExtinguishmentOfDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_GainsLossOnExtinguishmentOfDebt</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_ProceedsFromLoanFundingPaycheckProtectionProgram">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_ProceedsFromLoanFundingPaycheckProtectionProgram</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_UnsecuredLoanPrincipalAmountOfCityNationalBank">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_UnsecuredLoanPrincipalAmountOfCityNationalBank</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_DebtInstrumentInterestRateStatedPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Contractual interest rate for funds borrowed, under the debt agreement.</p></div>
<a href="javascript:void(0);" onclick="top.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 20<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<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.22(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateStatedPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LoansPayableAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LoansPayableAbstract</td>
</tr>
<tr>
<td style="padding-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>89
<FILENAME>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775574477656">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="num">(74,000)<span></span>
</td>
<td class="nump">77,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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Total</a></td>
<td class="num">(74,000)<span></span>
</td>
<td class="nump">77,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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Total</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="top.Show.showAR( this, 'defref_tomz_ProvisionForIncomeTaxes', window );">Provision for Income Taxes</a></td>
<td class="num">$ (74,000)<span></span>
</td>
<td class="nump">$ 77,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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://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 http://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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://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 (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123570139&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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://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 http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>90
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775574473608">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic', window );">United States</a></td>
<td class="num">$ (4,509,585)<span></span>
</td>
<td class="nump">$ 4,468,166<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="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', 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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Total</a></td>
<td class="num">$ (4,509,585)<span></span>
</td>
<td class="nump">$ 4,468,166<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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://asc.fasb.org/extlink&amp;oid=123359005&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>91
<FILENAME>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775565381320">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_tomz_IncomeLossBeforeIncomeTax', window );">Income (Loss) before income tax</a></td>
<td class="num">$ (4,509,585)<span></span>
</td>
<td class="nump">$ 4,468,166<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="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate', window );">Income tax expense computed at US statutory corporate income tax rate</a></td>
<td class="num">$ (1,002,844)<span></span>
</td>
<td class="nump">$ 1,251,086<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance on deferred tax assets</a></td>
<td class="nump">1,334,294<span></span>
</td>
<td class="num">(2,050,485)<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes', window );">Provision to prior year tax return</a></td>
<td class="num">(60,646)<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost', window );">Incentive stock options and warrants</a></td>
<td class="nump">5,139<span></span>
</td>
<td class="nump">876,676<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization', window );">Gain Upon Debt Extinguishment</a></td>
<td class="num">(116,083)<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment', window );">Meals and Entertainment</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,300<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationOtherReconcilingItems', window );">Other</a></td>
<td class="nump">25,894<span></span>
</td>
<td class="num">(1,577)<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="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense (benefit)</a></td>
<td class="num">$ (74,086)<span></span>
</td>
<td class="nump">$ 77,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_IncomeLossBeforeIncomeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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 meals and entertainment expense.</p></div>
<a href="javascript:void(0);" onclick="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>92
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775565171656">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.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">$ 109,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="top.Show.showAR( this, 'defref_tomz_DeferredTaxAssetsAccruedVacation', window );">Accrued Vacation</a></td>
<td class="nump">81,000<span></span>
</td>
<td class="nump">82,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="top.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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets', window );">Intangible Assets</a></td>
<td class="nump">404,000<span></span>
</td>
<td class="nump">412,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="top.Show.showAR( this, 'defref_tomz_DeferredTaxAssetOperatingLeaseRightofuseLiabilities', window );">Operating Lease Right-of-use Liabilities</a></td>
<td class="nump">267,000<span></span>
</td>
<td class="nump">290,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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards', window );">Net Operating Losses</a></td>
<td class="nump">4,124,000<span></span>
</td>
<td class="nump">3,100,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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation Allowance</a></td>
<td class="num">(4,941,000)<span></span>
</td>
<td class="num">(3,530,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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNet', window );">Deferred Tax Assets</a></td>
<td class="nump">424,000<span></span>
</td>
<td class="nump">482,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="top.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="top.Show.showAR( this, 'defref_tomz_DeferredTaxLiabilityOperatingLeaseRightofuseAssets', window );">Operating Lease Right-of-use Assets</a></td>
<td class="nump">277,000<span></span>
</td>
<td class="nump">290,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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">Property Plant and Equipment</a></td>
<td class="num">(147,000)<span></span>
</td>
<td class="num">(192,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="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilities', window );">Deferred Tax Liabilities</a></td>
<td class="num">(424,000)<span></span>
</td>
<td class="num">(482,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="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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_us-gaap_ComponentsOfDeferredTaxAssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>93
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775664061240">
<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, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.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="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Net Operating Loss Carryforwards</a></td>
<td class="nump">$ 15,312,000<span></span>
</td>
<td class="nump">$ 11,465,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="top.Show.showAR( this, 'defref_tomz_StateNetOperatingLossCarryforwards', window );">State Net Operating Loss Carryforwards</a></td>
<td class="nump">11,881,000<span></span>
</td>
<td class="nump">9,663,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="top.Show.showAR( this, 'defref_tomz_NetDeferredTaxAssetsIncreasedValuationAllowance', window );">Net deferred tax assets increased valuation allowance</a></td>
<td class="nump">$ 1,411,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="top.Show.showAR( this, 'defref_tomz_NetDeferredTaxAssetsValuationAllowance', window );">Net deferred tax assets valuation allowance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,941,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_NetDeferredTaxAssetsIncreasedValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32559-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>94
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775572300248">
<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">12 Months Ended</th>
</tr>
<tr><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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration Risk Percentage</a></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="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=tomz_OneCustomerMember', window );">One Customer</a></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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration Risk Percentage</a></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="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=tomz_ThreeCustomersMember', window );">Three Customers</a></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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration Risk Percentage</a></td>
<td class="nump">42.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="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=tomz_TwoCustomerMember', window );">Two Customer</a></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="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration Risk Percentage</a></td>
<td class="nump">36.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123359005&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 http://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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ThreeCustomersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ThreeCustomersMember</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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>95
<FILENAME>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="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.1</span><table class="report" border="0" cellspacing="2" id="idm139775565817240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SUBSEQUENT EVENTS (Details Narrative) - Subsequent Event<br></strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jan. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Chief Executive Officer [Member]</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="top.Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1', window );">Exercise price</a></td>
<td class="nump">$ 1.12<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="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Option to purchase | shares</a></td>
<td class="nump">172,500<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="top.Show.showAR( this, 'defref_tomz_StockOptionValued', window );">Stock option valued | $</a></td>
<td class="nump">$ 190,239<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="top.Show.showAR( this, 'defref_tomz_StockOptionTerm', window );">Stock option term</a></td>
<td class="text">10 years<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="top.Show.showAR( this, 'defref_tomz_Volatility', window );">Volatility</a></td>
<td class="nump">151.00%<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="top.Show.showAR( this, 'defref_tomz_ExpectedDividendYield', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<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="top.Show.showAR( this, 'defref_tomz_RiskFreeInterestRate', window );">Risk free interest rate</a></td>
<td class="nump">1.75%<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="top.Show.showAR( this, 'defref_tomz_GrantDateFairValuePerShareOfCommonStock', window );">Grant date fair value per share of common stock</a></td>
<td class="nump">$ 1.10<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Chief Operating Officer [Member]</a></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="top.Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1', window );">Exercise price</a></td>
<td class="nump">$ 1.12<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="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Option to purchase | shares</a></td>
<td class="nump">57,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="top.Show.showAR( this, 'defref_tomz_StockOptionValued', window );">Stock option valued | $</a></td>
<td class="nump">$ 63,413<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="top.Show.showAR( this, 'defref_tomz_StockOptionTerm', window );">Stock option term</a></td>
<td class="text">10 years<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="top.Show.showAR( this, 'defref_tomz_Volatility', window );">Volatility</a></td>
<td class="nump">151.00%<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="top.Show.showAR( this, 'defref_tomz_ExpectedDividendYield', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<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="top.Show.showAR( this, 'defref_tomz_RiskFreeInterestRate', window );">Risk free interest rate</a></td>
<td class="nump">1.75%<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="top.Show.showAR( this, 'defref_tomz_GrantDateFairValuePerShareOfCommonStock', window );">Grant date fair value per share of common stock</a></td>
<td class="nump">$ 1.10<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Chief Financial Officer</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="top.Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1', window );">Exercise price</a></td>
<td class="nump">$ 1.12<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="top.Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Option to purchase | shares</a></td>
<td class="nump">40,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="top.Show.showAR( this, 'defref_tomz_StockOptionValued', window );">Stock option valued | $</a></td>
<td class="nump">$ 44,113<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="top.Show.showAR( this, 'defref_tomz_StockOptionTerm', window );">Stock option term</a></td>
<td class="text">10 years<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="top.Show.showAR( this, 'defref_tomz_Volatility', window );">Volatility</a></td>
<td class="nump">151.00%<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="top.Show.showAR( this, 'defref_tomz_ExpectedDividendYield', window );">Expected dividend yield</a></td>
<td class="nump">0.00%<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="top.Show.showAR( this, 'defref_tomz_RiskFreeInterestRate', window );">Risk free interest rate</a></td>
<td class="nump">1.75%<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="top.Show.showAR( this, 'defref_tomz_GrantDateFairValuePerShareOfCommonStock', window );">Grant date fair value per share of common stock</a></td>
<td class="nump">$ 1.10<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Board of Directors Chairman</a></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="top.Show.showAR( this, 'defref_us-gaap_ConversionOfStockSharesIssued1', window );">Common stock issued | shares</a></td>
<td class="nump">51,750<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="top.Show.showAR( this, 'defref_us-gaap_ConversionOfStockAmountIssued1', window );">Common stock issued amount | $</a></td>
<td class="nump">$ 54,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_ExpectedDividendYield">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ 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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123467817&amp;loc=d3e21475-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123431023&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 http://asc.fasb.org/extlink&amp;oid=123431023&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 http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4332-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123431023&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 http://asc.fasb.org/extlink&amp;oid=123431023&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 http://asc.fasb.org/extlink&amp;oid=123431023&amp;loc=d3e4304-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.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 http://asc.fasb.org/extlink&amp;oid=123467817&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 http://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 http://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 http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_ChiefExecutiveOfficerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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_RelatedPartyTransactionsByRelatedPartyAxis=srt_ChiefOperatingOfficerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.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>96
<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/2021q4"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2021-01-31"
  xmlns:tomz="http://tomz.com/20211231"
  xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31"
  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-20211231.xsd" xlink:type="simple"/>
    <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="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_BoardOfDirectorsChairmanMember">
        <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>2022-01-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember">
        <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>2022-01-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember">
        <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>2022-01-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember">
        <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>2022-01-31</instant>
        </period>
    </context>
    <context id="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember">
        <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>2022-01-01</startDate>
            <endDate>2022-01-31</endDate>
        </period>
    </context>
    <context id="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember">
        <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>2022-01-31</instant>
        </period>
    </context>
    <context id="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember">
        <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>2022-01-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_ThreeCustomersMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:ThreeCustomersMember</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_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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2020-04-21">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2020-04-21</instant>
        </period>
    </context>
    <context id="AsOf2020-10-01_tomz_TwoThousandSixteenEquityPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:TwoThousandSixteenEquityPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-10-01</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_TwoThousandSixteenEquityPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:TwoThousandSixteenEquityPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</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="AsOf2020-09-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>
            <instant>2020-09-22</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2020-09-01to2020-09-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-09-01</startDate>
            <endDate>2020-09-22</endDate>
        </period>
    </context>
    <context id="From2020-09-01to2020-09-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-09-01</startDate>
            <endDate>2020-09-22</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-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="AsOf2020-08-30_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember">
        <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:StockWarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-08-30</instant>
        </period>
    </context>
    <context id="AsOf2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember">
        <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:StockWarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-02-29</instant>
        </period>
    </context>
    <context id="AsOf2020-10-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>2020-10-31</instant>
        </period>
    </context>
    <context id="AsOf2020-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>2020-01-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-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>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember">
        <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:StockWarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="AsOf2020-08-30_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>
            <instant>2020-08-30</instant>
        </period>
    </context>
    <context id="AsOf2020-01-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>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember">
        <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:AprilTwentyTwentyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember">
        <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:OctoberwentyTwentyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember">
        <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:AprilTwentyTwentyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember">
        <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:AprilTwentyTwentyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember">
        <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:AprilTwentyTwentyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="From2020-08-01to2020-08-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>2020-08-01</startDate>
            <endDate>2020-08-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember">
        <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:OctoberwentyTwentyMember</xbrldi:explicitMember>
                <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-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember">
        <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:AprilTwentyTwentyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantThreeMember</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_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember">
        <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:AprilTwentyTwentyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantTwoMember</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_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember">
        <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:AprilTwentyTwentyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantOneMember</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_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember">
        <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:AprilTwentyTwentyMember</xbrldi:explicitMember>
                <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="From2020-01-01to2020-01-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>2020-01-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember">
        <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:StockWarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-08-01</startDate>
            <endDate>2020-08-31</endDate>
        </period>
    </context>
    <context id="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember">
        <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:StockWarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2020-02-29</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember">
        <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:StockWarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="From2020-10-01to2020-10-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>2020-10-01</startDate>
            <endDate>2020-10-31</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-09-30_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-09-30</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_MayTwentyTwentyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyMember</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_JuneTwentyTwentyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwentyTwentyMember</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_OctoberTwoThousandTwentyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberTwoThousandTwentyMember</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_JulyTwentyTwentyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JulyTwentyTwentyMember</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_MarchTwentyTwentyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MarchTwentyTwentyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-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="AsOf2021-09-30_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-09-30</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="From2020-01-01to2020-01-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-01-31</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="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_WarrantsNineMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsNineMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_WarrantsNineMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsNineMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_WarrantsSixMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSixMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_WarrantsSixMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSixMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-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>2021-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="AsOf2019-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>2019-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="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_RangeSixMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSixMember</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_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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-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>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-12-31_tomz_RangeSixMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSixMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-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="AsOf2021-09-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </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="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-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="AsOf2020-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>2020-12-31</instant>
        </period>
    </context>
    <context id="AsOf2021-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>2021-12-31</instant>
        </period>
    </context>
    <context id="From2021-07-01to2021-09-30_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>
            <startDate>2021-07-01</startDate>
            <endDate>2021-09-30</endDate>
        </period>
    </context>
    <context id="From2020-07-01to2020-09-30_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>
            <startDate>2020-07-01</startDate>
            <endDate>2020-09-30</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="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-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="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-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="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-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="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-12-31_tomz_RevenueByGeographicRegionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:RevenueByGeographicRegionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_RevenueByGeographicRegionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:RevenueByGeographicRegionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-12-31_tomz_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">tomz:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-12-31_us-gaap_DomesticCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-12-31_tomz_ProductAndServiceRevenueMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_ProductAndServiceRevenueMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</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:IncomeTaxAuthorityAxis">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_us-gaap_DomesticCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</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_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="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="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tomz:DilutedNetIncomeorLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">tomz:DilutedNetIncomeorLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-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_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="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="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_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_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="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="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="From2020-01-01to2020-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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2019-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>2019-12-31</instant>
        </period>
    </context>
    <context id="AsOf2019-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>2019-12-31</instant>
        </period>
    </context>
    <context id="AsOf2019-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="AsOf2019-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>2019-12-31</instant>
        </period>
    </context>
    <context id="AsOf2019-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>2019-12-31</instant>
        </period>
    </context>
    <context id="From2020-01-01to2020-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2020-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>2020-12-31</instant>
        </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="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="AsOf2020-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>2020-12-31</instant>
        </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="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-03-14">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2022-03-14</instant>
        </period>
    </context>
    <context id="AsOf2021-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2021-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="From2021-01-01to2021-12-31">0000314227</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag contextRef="From2021-01-01to2021-12-31">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate contextRef="From2021-01-01to2021-12-31">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalPeriodFocus contextRef="From2021-01-01to2021-12-31">FY</dei:DocumentFiscalPeriodFocus>
    <dei:DocumentFiscalYearFocus contextRef="From2021-01-01to2021-12-31">2021</dei:DocumentFiscalYearFocus>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="AsOf2020-12-31"
      decimals="INF"
      unitRef="USDPShares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized contextRef="AsOf2020-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="AsOf2020-12-31" decimals="0" unitRef="Shares">16761513</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="INF"
      unitRef="USDPShares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2020-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2020-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2020-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="INF"
      unitRef="USDPShares">1000</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2020-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="AsOf2020-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2020-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:OtherGeneralAndAdministrativeExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      unitRef="USD">6104363</us-gaap:OtherGeneralAndAdministrativeExpense>
    <us-gaap:OtherGeneralAndAdministrativeExpense
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      unitRef="USD">7102942</us-gaap:OtherGeneralAndAdministrativeExpense>
    <tomz:ReverseStockSplitAdjustmentAmount
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      unitRef="USD">0</tomz:ReverseStockSplitAdjustmentAmount>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      unitRef="USD">-447429</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants
      contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants>
    <us-gaap:IncrementalCommonSharesAttributableToConversionOfDebtSecurities
      contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:IncrementalCommonSharesAttributableToConversionOfDebtSecurities>
    <us-gaap:IncrementalCommonSharesAttributableToConversionOfDebtSecurities
      contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:IncrementalCommonSharesAttributableToConversionOfDebtSecurities>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements
      contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements>
    <us-gaap:InventoryValuationReserves contextRef="AsOf2020-12-31" decimals="0" unitRef="USD">0</us-gaap:InventoryValuationReserves>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves contextRef="AsOf2020-12-31" decimals="0" unitRef="USD">68000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2020-07-01to2020-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      unitRef="Shares">63750</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2021-07-01to2021-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      unitRef="Shares">63750</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2020-12-31_tomz_EquityIncentivePlanOneMember"
      decimals="0"
      unitRef="Shares">3600000.0</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="AsOf2020-12-31_tomz_EquityIncentivePlanOneMember"
      decimals="0"
      unitRef="Shares">2200000.0</us-gaap:CommonStockSharesAuthorized>
    <tomz:AmortizationOfTenantImprovementAllowance
      contextRef="From2020-01-01to2020-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>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="0"
      unitRef="Shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2021-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <tomz:Preferredstockparorstatedvaluepershare
      contextRef="AsOf2021-12-31"
      decimals="INF"
      unitRef="USDPShares">1000</tomz:Preferredstockparorstatedvaluepershare>
    <us-gaap:ProductLiabilityContingencyAccrualPresentValue contextRef="AsOf2020-12-31" decimals="0" unitRef="USD">0</us-gaap:ProductLiabilityContingencyAccrualPresentValue>
    <us-gaap:ProductLiabilityContingencyAccrualPresentValue contextRef="AsOf2021-12-31" decimals="0" unitRef="USD">0</us-gaap:ProductLiabilityContingencyAccrualPresentValue>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      unitRef="USD">-4509585</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      unitRef="USD">-4509585</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      unitRef="USD">0</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <dei:DocumentType contextRef="From2021-01-01to2021-12-31">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport contextRef="From2021-01-01to2021-12-31">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate contextRef="From2021-01-01to2021-12-31">2021-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport contextRef="From2021-01-01to2021-12-31">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="From2021-01-01to2021-12-31">000-09908</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="From2021-01-01to2021-12-31">TOMI ENVIRONMENTAL SOLUTIONS, INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="From2021-01-01to2021-12-31">FL</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="From2021-01-01to2021-12-31">59-1947988</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="From2021-01-01to2021-12-31">8430 Spires Way</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="From2021-01-01to2021-12-31">Frederick</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="From2021-01-01to2021-12-31">MD</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="From2021-01-01to2021-12-31">21701</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="From2021-01-01to2021-12-31">800</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="From2021-01-01to2021-12-31">525-1698</dei:LocalPhoneNumber>
    <dei:Security12bTitle contextRef="From2021-01-01to2021-12-31">Common Stock, par value $0.001 per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="From2021-01-01to2021-12-31">TOMZ</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="From2021-01-01to2021-12-31">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer contextRef="From2021-01-01to2021-12-31">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers contextRef="From2021-01-01to2021-12-31">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus contextRef="From2021-01-01to2021-12-31">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="From2021-01-01to2021-12-31">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="From2021-01-01to2021-12-31">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="From2021-01-01to2021-12-31">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="From2021-01-01to2021-12-31">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany contextRef="From2021-01-01to2021-12-31">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat contextRef="AsOf2021-06-30" decimals="0" unitRef="USD">29763900</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding contextRef="AsOf2022-03-14" decimals="INF" unitRef="Shares">19732705</dei:EntityCommonStockSharesOutstanding>
    <dei:AuditorFirmId contextRef="From2021-01-01to2021-12-31">89</dei:AuditorFirmId>
    <dei:AuditorName contextRef="From2021-01-01to2021-12-31">Rosenberg Rich Baker Berman, P.A.</dei:AuditorName>
    <dei:AuditorLocation contextRef="From2021-01-01to2021-12-31">Somerset, New Jersey</dei:AuditorLocation>
    <us-gaap:CashEquivalentsAtCarryingValue
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_3"
      unitRef="USD">5317443</us-gaap:CashEquivalentsAtCarryingValue>
    <us-gaap:CashEquivalentsAtCarryingValue
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_4"
      unitRef="USD">5198842</us-gaap:CashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_5"
      unitRef="USD">1964776</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_6"
      unitRef="USD">3716701</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_7"
      unitRef="USD">235904</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:OtherReceivablesNetCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_8"
      unitRef="USD">198951</us-gaap:OtherReceivablesNetCurrent>
    <us-gaap:InventoryNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_9"
      unitRef="USD">4743280</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_10"
      unitRef="USD">3781515</us-gaap:InventoryNet>
    <us-gaap:DepositsAssetsCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_11"
      unitRef="USD">288586</us-gaap:DepositsAssetsCurrent>
    <us-gaap:DepositsAssetsCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_12"
      unitRef="USD">388712</us-gaap:DepositsAssetsCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_13"
      unitRef="USD">343573</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_14"
      unitRef="USD">421305</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:AssetsCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_15"
      unitRef="USD">12893562</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_16"
      unitRef="USD">13706027</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_17"
      unitRef="USD">1488319</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_18"
      unitRef="USD">1298103</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_20"
      unitRef="USD">956284</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_21"
      unitRef="USD">722916</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_22"
      unitRef="USD">583271</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_23"
      unitRef="USD">631527</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_24"
      unitRef="USD">10476</us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers>
    <us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_25"
      unitRef="USD">52377</us-gaap:CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers>
    <us-gaap:OtherAssetsCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_26"
      unitRef="USD">341006</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_27"
      unitRef="USD">358935</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssets
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_28"
      unitRef="USD">1891037</us-gaap:OtherAssets>
    <us-gaap:OtherAssets
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_29"
      unitRef="USD">1765755</us-gaap:OtherAssets>
    <us-gaap:Assets
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_30"
      unitRef="USD">16272918</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_31"
      unitRef="USD">16769885</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_34"
      unitRef="USD">1054040</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_35"
      unitRef="USD">1501469</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_36"
      unitRef="USD">664608</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_37"
      unitRef="USD">501849</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:CustomerDepositsCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_38"
      unitRef="USD">6000</us-gaap:CustomerDepositsCurrent>
    <us-gaap:CustomerDepositsCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_39"
      unitRef="USD">118880</us-gaap:CustomerDepositsCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_40"
      unitRef="USD">91775</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_41"
      unitRef="USD">81223</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_42"
      unitRef="USD">1816423</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_43"
      unitRef="USD">2203421</us-gaap:LiabilitiesCurrent>
    <us-gaap:LongTermLoansPayable
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_45"
      unitRef="USD">0</us-gaap:LongTermLoansPayable>
    <us-gaap:LongTermLoansPayable
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_46"
      unitRef="USD">410700</us-gaap:LongTermLoansPayable>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_47"
      unitRef="USD">861415</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_48"
      unitRef="USD">953190</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_49"
      unitRef="USD">861415</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_50"
      unitRef="USD">1363890</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_51"
      unitRef="USD">2677838</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_52"
      unitRef="USD">3567311</us-gaap:Liabilities>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="INF"
      id="fid_82"
      unitRef="USDPShares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_87"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_92"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_68"
      unitRef="USD">638</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2020-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_69"
      unitRef="USD">638</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_88"
      unitRef="Shares">4000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_70"
      unitRef="USD">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2020-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_71"
      unitRef="USD">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="AsOf2021-12-31"
      decimals="INF"
      id="fid_74"
      unitRef="USDPShares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_76"
      unitRef="Shares">250000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_77"
      unitRef="Shares">19680955</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_78"
      unitRef="Shares">16761513</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_54"
      unitRef="USD">196810</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_55"
      unitRef="USD">167615</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_56"
      unitRef="USD">56941209</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_57"
      unitRef="USD">52142399</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_58"
      unitRef="USD">-43543576</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_59"
      unitRef="USD">-39108078</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_60"
      unitRef="USD">13595080</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_61"
      unitRef="USD">13202574</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_66"
      unitRef="USD">16272918</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_67"
      unitRef="USD">16769885</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_508"
      unitRef="USD">7753582</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_509"
      unitRef="USD">25027637</us-gaap:Revenues>
    <us-gaap:CostOfRevenue
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_510"
      unitRef="USD">3166891</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_511"
      unitRef="USD">9985046</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_512"
      unitRef="USD">4586691</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_513"
      unitRef="USD">15042591</us-gaap:GrossProfit>
    <us-gaap:ProfessionalFees
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_515"
      unitRef="USD">538093</us-gaap:ProfessionalFees>
    <us-gaap:ProfessionalFees
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_516"
      unitRef="USD">681377</us-gaap:ProfessionalFees>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_517"
      unitRef="USD">294665</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_518"
      unitRef="USD">719760</us-gaap:DepreciationAndAmortization>
    <us-gaap:SellingExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_519"
      unitRef="USD">1674466</us-gaap:SellingExpense>
    <us-gaap:SellingExpense
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_520"
      unitRef="USD">1247444</us-gaap:SellingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_521"
      unitRef="USD">572700</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_522"
      unitRef="USD">455046</us-gaap:ResearchAndDevelopmentExpense>
    <tomz:ConsultingFees
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_525"
      unitRef="USD">326614</tomz:ConsultingFees>
    <tomz:ConsultingFees
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_526"
      unitRef="USD">327232</tomz:ConsultingFees>
    <us-gaap:OperatingExpenses
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_529"
      unitRef="USD">9510901</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_530"
      unitRef="USD">10533801</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_531"
      unitRef="USD">-4924210</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_532"
      unitRef="USD">4508789</us-gaap:OperatingIncomeLoss>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_534"
      unitRef="USD">-414583</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_535"
      unitRef="USD">0</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:InterestIncomeOther
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_536"
      unitRef="USD">1076</us-gaap:InterestIncomeOther>
    <us-gaap:InterestIncomeOther
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_537"
      unitRef="USD">2915</us-gaap:InterestIncomeOther>
    <us-gaap:InterestExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_538"
      unitRef="USD">1034</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_539"
      unitRef="USD">43538</us-gaap:InterestExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_540"
      unitRef="USD">414625</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_541"
      unitRef="USD">-40623</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_542"
      unitRef="USD">-4509585</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_543"
      unitRef="USD">4468166</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_544"
      unitRef="USD">-74086</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_545"
      unitRef="USD">77000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_546"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_547"
      unitRef="USD">4391166</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_549"
      unitRef="USDPShares">-0.25</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2020-01-01to2020-12-31"
      decimals="INF"
      id="fid_550"
      unitRef="USDPShares">0.27</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_551"
      unitRef="USDPShares">-0.25</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2020-01-01to2020-12-31"
      decimals="INF"
      id="fid_552"
      unitRef="USDPShares">0.23</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_553"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_554"
      unitRef="Shares">16512126</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_555"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_556"
      unitRef="Shares">18757509</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:SharesIssued
      contextRef="AsOf2020-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1010"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2019-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_985"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2019-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_984"
      unitRef="Shares">15587552</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2019-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_986"
      unitRef="USD">155876</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2019-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_987"
      unitRef="USD">44232274</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2019-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_988"
      unitRef="USD">-43499244</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2019-12-31"
      decimals="0"
      id="fid_989"
      unitRef="USD">889543</us-gaap:StockholdersEquity>
    <tomz:EquityCompensation
      contextRef="From2020-01-01to2020-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_990"
      unitRef="USD">3158175</tomz:EquityCompensation>
    <tomz:EquityCompensation
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_991"
      unitRef="USD">3158175</tomz:EquityCompensation>
    <tomz:CommonStockIssuedForServicesProvidedShares
      contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_992"
      unitRef="Shares">50500</tomz:CommonStockIssuedForServicesProvidedShares>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_993"
      unitRef="USD">505</tomz:CommonStockIssuedForServicesProvidedAmount>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2020-01-01to2020-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_994"
      unitRef="USD">49685</tomz:CommonStockIssuedForServicesProvidedAmount>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_995"
      unitRef="USD">50190</tomz:CommonStockIssuedForServicesProvidedAmount>
    <tomz:ConversionOfNotesPayableIntoCommonStockShares
      contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_996"
      unitRef="Shares">1041667</tomz:ConversionOfNotesPayableIntoCommonStockShares>
    <tomz:ConversionOfNotesPayableIntoCommonStockAmount
      contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_997"
      unitRef="USD">10417</tomz:ConversionOfNotesPayableIntoCommonStockAmount>
    <tomz:ConversionOfNotesPayableIntoCommonStockAmount
      contextRef="From2020-01-01to2020-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_998"
      unitRef="USD">4489584</tomz:ConversionOfNotesPayableIntoCommonStockAmount>
    <tomz:ConversionOfNotesPayableIntoCommonStockAmount
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_999"
      unitRef="USD">4500000</tomz:ConversionOfNotesPayableIntoCommonStockAmount>
    <tomz:WarrantsAndOptionsExercisedShares
      contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1000"
      unitRef="Shares">79296</tomz:WarrantsAndOptionsExercisedShares>
    <tomz:WarrantsAndOptionsExercisedAmount
      contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1001"
      unitRef="USD">793</tomz:WarrantsAndOptionsExercisedAmount>
    <tomz:WarrantsAndOptionsExercisedAmount
      contextRef="From2020-01-01to2020-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1002"
      unitRef="USD">212707</tomz:WarrantsAndOptionsExercisedAmount>
    <tomz:WarrantsAndOptionsExercisedAmount
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_1003"
      unitRef="USD">213500</tomz:WarrantsAndOptionsExercisedAmount>
    <tomz:ReverseStockSplitAdjustmentShares
      contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1004"
      unitRef="Shares">2499</tomz:ReverseStockSplitAdjustmentShares>
    <tomz:ReverseStockSplitAdjustmentAmount
      contextRef="From2020-01-01to2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1005"
      unitRef="USD">25</tomz:ReverseStockSplitAdjustmentAmount>
    <tomz:ReverseStockSplitAdjustmentAmount
      contextRef="From2020-01-01to2020-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1006"
      unitRef="USD">-25</tomz:ReverseStockSplitAdjustmentAmount>
    <us-gaap:NetIncomeLoss
      contextRef="From2020-01-01to2020-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1008"
      unitRef="USD">4391166</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_1009"
      unitRef="USD">4391166</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2021-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1029"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1012"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1011"
      unitRef="Shares">16761514</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1013"
      unitRef="USD">167616</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1014"
      unitRef="USD">52142399</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1015"
      unitRef="USD">-39108078</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_1016"
      unitRef="USD">13202574</us-gaap:StockholdersEquity>
    <tomz:EquityCompensation
      contextRef="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1017"
      unitRef="USD">18354</tomz:EquityCompensation>
    <tomz:EquityCompensation
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1018"
      unitRef="USD">18354</tomz:EquityCompensation>
    <tomz:CommonStockIssuedForServicesProvidedShares
      contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1019"
      unitRef="Shares">50000</tomz:CommonStockIssuedForServicesProvidedShares>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1020"
      unitRef="USD">500</tomz:CommonStockIssuedForServicesProvidedAmount>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1021"
      unitRef="USD">227500</tomz:CommonStockIssuedForServicesProvidedAmount>
    <tomz:CommonStockIssuedForServicesProvidedAmount
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1022"
      unitRef="USD">228000</tomz:CommonStockIssuedForServicesProvidedAmount>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1023"
      unitRef="Shares">2869442</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="From2021-01-01to2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1024"
      unitRef="USD">28694</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="From2021-01-01to2021-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1025"
      unitRef="USD">4552957</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1026"
      unitRef="USD">4581651</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1027"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1028"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2019-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1036"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1031"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1030"
      unitRef="Shares">19680955</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1032"
      unitRef="USD">196810</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1033"
      unitRef="USD">56941209</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1034"
      unitRef="USD">-43543576</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_1035"
      unitRef="USD">13595080</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_558"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_559"
      unitRef="USD">4391166</us-gaap:NetIncomeLoss>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_561"
      unitRef="USD">294665</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_562"
      unitRef="USD">719760</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_563"
      unitRef="USD">157315</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_564"
      unitRef="USD">157315</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_566"
      unitRef="USD">41900</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <tomz:EquityCompensationExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_567"
      unitRef="USD">18354</tomz:EquityCompensationExpense>
    <tomz:EquityCompensationExpense
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_568"
      unitRef="USD">3130986</tomz:EquityCompensationExpense>
    <us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_569"
      unitRef="USD">228000</us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims>
    <us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_570"
      unitRef="USD">50190</us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims>
    <us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_571"
      unitRef="USD">1288000</us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease>
    <us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_572"
      unitRef="USD">280000</us-gaap:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease>
    <us-gaap:InventoryLIFOReservePeriodCharge
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_573"
      unitRef="USD">0</us-gaap:InventoryLIFOReservePeriodCharge>
    <us-gaap:InventoryLIFOReservePeriodCharge
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_574"
      unitRef="USD">-100000</us-gaap:InventoryLIFOReservePeriodCharge>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_575"
      unitRef="USD">-414583</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_576"
      unitRef="USD">0</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_579"
      unitRef="USD">463925</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_580"
      unitRef="USD">-2502043</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_581"
      unitRef="USD">-961765</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_582"
      unitRef="USD">-1388986</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_583"
      unitRef="USD">77732</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_584"
      unitRef="USD">-233642</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInDeposits
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_585"
      unitRef="USD">100126</us-gaap:IncreaseDecreaseInDeposits>
    <us-gaap:IncreaseDecreaseInDeposits
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_586"
      unitRef="USD">-247660</us-gaap:IncreaseDecreaseInDeposits>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_587"
      unitRef="USD">-36953</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherReceivables
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_588"
      unitRef="USD">-198951</us-gaap:IncreaseDecreaseInOtherReceivables>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_589"
      unitRef="USD">-100149</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_590"
      unitRef="USD">-294659</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_593"
      unitRef="USD">788247</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_594"
      unitRef="USD">166644</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_595"
      unitRef="USD">78926</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <tomz:DebtInstrumentIncreasesAccruedInterest
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_596"
      unitRef="USD">0</tomz:DebtInstrumentIncreasesAccruedInterest>
    <tomz:DebtInstrumentIncreasesAccruedInterest
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_597"
      unitRef="USD">-66667</tomz:DebtInstrumentIncreasesAccruedInterest>
    <us-gaap:IncreaseDecreaseInCustomerDeposits
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_598"
      unitRef="USD">-112880</us-gaap:IncreaseDecreaseInCustomerDeposits>
    <us-gaap:IncreaseDecreaseInCustomerDeposits
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_599"
      unitRef="USD">118880</us-gaap:IncreaseDecreaseInCustomerDeposits>
    <tomz:IncreaseDecreaseInLeaseLiabilities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_600"
      unitRef="USD">-151088</tomz:IncreaseDecreaseInLeaseLiabilities>
    <tomz:IncreaseDecreaseInLeaseLiabilities
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_601"
      unitRef="USD">-146688</tomz:IncreaseDecreaseInLeaseLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_602"
      unitRef="USD">-3823684</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_603"
      unitRef="USD">4578076</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <tomz:CapitalizedPatentAndTrademarkCosts
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_605"
      unitRef="USD">-126697</tomz:CapitalizedPatentAndTrademarkCosts>
    <tomz:CapitalizedPatentAndTrademarkCosts
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_606"
      unitRef="USD">-111386</tomz:CapitalizedPatentAndTrademarkCosts>
    <tomz:PurchaseOfPropertyAndEquipment
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_607"
      unitRef="USD">-512669</tomz:PurchaseOfPropertyAndEquipment>
    <tomz:PurchaseOfPropertyAndEquipment
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_608"
      unitRef="USD">-289270</tomz:PurchaseOfPropertyAndEquipment>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_609"
      unitRef="USD">-639366</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_610"
      unitRef="USD">-400655</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfWarrants
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_612"
      unitRef="USD">4581651</us-gaap:ProceedsFromIssuanceOfWarrants>
    <us-gaap:ProceedsFromIssuanceOfWarrants
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_613"
      unitRef="USD">0</us-gaap:ProceedsFromIssuanceOfWarrants>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_614"
      unitRef="USD">0</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_615"
      unitRef="USD">213500</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromOtherDebt
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_616"
      unitRef="USD">0</us-gaap:ProceedsFromOtherDebt>
    <us-gaap:ProceedsFromOtherDebt
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_617"
      unitRef="USD">410700</us-gaap:ProceedsFromOtherDebt>
    <tomz:RepaymentOfPrincipalBalanceOnConvertibleNote
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_618"
      unitRef="USD">0</tomz:RepaymentOfPrincipalBalanceOnConvertibleNote>
    <tomz:RepaymentOfPrincipalBalanceOnConvertibleNote
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_619"
      unitRef="USD">-500000</tomz:RepaymentOfPrincipalBalanceOnConvertibleNote>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_642"
      unitRef="USD">4581651</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_643"
      unitRef="USD">124200</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_621"
      unitRef="USD">118601</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_622"
      unitRef="USD">4301620</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_623"
      unitRef="USD">5198842</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="AsOf2019-12-31"
      decimals="0"
      id="fid_624"
      unitRef="USD">897223</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_625"
      unitRef="USD">5317443</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_626"
      unitRef="USD">5198842</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:InterestPaidNet
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_628"
      unitRef="USD">0</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_629"
      unitRef="USD">107356</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_630"
      unitRef="USD">75000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_631"
      unitRef="USD">800</us-gaap:IncomeTaxesPaidNet>
    <tomz:AccruedEquityCompensation
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_633"
      unitRef="USD">0</tomz:AccruedEquityCompensation>
    <tomz:AccruedEquityCompensation
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_634"
      unitRef="USD">27189</tomz:AccruedEquityCompensation>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_635"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_636"
      unitRef="USD">4500000</us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities>
    <tomz:EquipmentNetTransferredToInventory
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_637"
      unitRef="USD">0</tomz:EquipmentNetTransferredToInventory>
    <tomz:EquipmentNetTransferredToInventory
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_638"
      unitRef="USD">22685</tomz:EquipmentNetTransferredToInventory>
    <tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_639"
      unitRef="USD">118078</tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets>
    <tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_640"
      unitRef="USD">49758</tomz:PatentAndTrademarkCostsReclassifiedFromOtherAssets>
    <us-gaap:NatureOfOperations contextRef="From2021-01-01to2021-12-31" id="fid_644">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;&#160;(BIT&#x2122;) platform, under which we manufacture, license, service and sell our SteraMist&#xae;&#160;brand of products, including SteraMist&#xae;&#160;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 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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;&#160;is&#160;registered with the U.S. Environmental Protection Agency (EPA) and&#160;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;/strong&gt;OH ion), known as ionized Hydrogen Peroxide (iHP&#x2122;). Represented by the SteraMist&#xae;&#160;brand of products, iHP&#x2122;&#160;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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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="From2021-01-01to2021-12-31" id="fid_645">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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"&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:6%;vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in"&gt;Quoted prices in active markets for identical assets or liabilities.&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&gt;&lt;p style="font-size: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="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in"&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;/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&gt;&lt;p style="font-size: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="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;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. At December, 2021 and 2020 there were no cash equivalents.&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"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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. Bad debt expense for the years ended December 31, 2021 and 2020 was $1,605,660 and $332,027, respectively. At December 31, 2021 and December 31, 2020, the allowance for doubtful accounts was $1,678,000and $390,000, respectively.&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"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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. Our reserve for obsolete inventory was $0 as of December 31, 2021 and December 31, 2020, respectively.&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"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:36pt"&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:36pt"&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:45px"&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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 both&#160;the years ended December 31, 2021 and 2020, was $41,900.&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"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;As of December 31, 2021, two vendors accounted for approximately 53% of accounts payable. As of December 31, 2020, two vendors accounted for approximately 32% of accounts payable.&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 0px 0px 0in;text-indent:45px"&gt;For the year ended December 31, 2021, two vendors accounted for 65% of cost of sales. For the year ended December 31, 2020, two vendors accounted for 76% of cost of sales.&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"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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, 2021, and December 31, 2020, 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;text-indent:45px"&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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&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 Accounting Standards Codification (ASC) Topic 740: Income Taxes. Net deferred tax benefits have been fully reserved at December 31, 2021 and December 31, 2020. 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;&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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;Potentially dilutive securities as of December 31, 2020 consisted of 2,049,133 shares of common stock issuable upon exercise of outstanding warrants, 132,500 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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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, preferred stock and shares associated with the conversion of debt to purchase approximately 3.6 million and 2.2 million shares of common stock were outstanding at December 31, 2021 and 2020, respectively, but were excluded from the computation of diluted net loss per share at December 31, 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"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;(4,435,499&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,391,166&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&gt;Adjustments for convertible debt - as converted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;Interest on convertible 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="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;40,689&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%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0in"&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;(4,435,599&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,431,855&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 0px 0px 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;16,512,126&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;18,757,509&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 0px 0px 0in"&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:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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.25&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.27&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 0px 0px 0in"&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.25&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.23&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 0px 0px 0in;text-indent:45px"&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"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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"&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;(4,435,599&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,391,166&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 0px 0px 0in"&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"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;16,512,126&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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"&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;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;/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;Convertible 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%;white-space: nowrap;"&gt;&lt;p style="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"&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;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;/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;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;63,750&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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;18,757,509&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%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0in"&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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0in"&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.25&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.27&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 0px 0px 0in"&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.25&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.23&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 0px 0px 0in"&gt;Note: Warrants, options and preferred stock for the years ended December 31, 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.&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 0in"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 0px 0px 0in"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 0px 0px 0in"&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"&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"&gt;&lt;strong&gt;For The Years Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Change &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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in; 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 0px 0px 0in"&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,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;22,971,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;(16,792,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 0in"&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,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;2,057,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;(482,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 0px 0px 0in"&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;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;25,028,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;(17,274,000&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"&gt;&#160; &lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For The Years Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in; 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 0px 0px 0in"&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,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;18,367,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;(11,964,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 0in"&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;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;6,661,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;(5,310,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 0px 0px 0in"&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;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;25,028,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;(17,274,000&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;&#160;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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;As of December 31, 2021, and December 31, 2020 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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;&#160;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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 0px 0px 0in;text-indent:45px"&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. 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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 years ended December 31, 2021 and 2020, we issued 50,000 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;text-indent:45px"&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;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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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, 2021 and 2020.&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"&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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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, 2021 and 2020 were approximately $701,000 and $276,000, respectively.&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"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;We expense research and development expenses in the period in which they are incurred. For the years ended December 31, 2021 and 2020, research and development expenses were approximately $573,000 and $455,000, respectively.&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"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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"&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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&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. The disclosure requirements can be applied either retrospectively or prospectively to all transactions in the scope of the amendments that are reflected in the financial statements at the date of initial application and new transactions that are entered into after the date of initial application. The 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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;In December 2019, the FASB issued ASU No. 2019-12, Simplifying the Accounting for Income Taxes, as part of its initiative to reduce complexity in accounting standards. The amendments in the ASU include removing exceptions to incremental intraperiod tax allocation of losses and gains from different financial statement components, exceptions to the method of recognizing income taxes on interim period losses, and exceptions to deferred tax liability recognition related to foreign subsidiary investments. In addition, the ASU requires that entities recognize franchise tax based on an incremental method and requires an entity to evaluate the accounting for step-ups in the tax basis of goodwill as inside or outside of a business combination. We adopted ASU 2019-12 starting 2021, which did not have a material impact on our consolidated financial statements.&lt;/p&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_662">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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="From2021-01-01to2021-12-31" id="fid_663">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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="From2021-01-01to2021-12-31" id="fid_664">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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="From2021-01-01to2021-12-31" id="fid_665">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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"&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:6%;vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in"&gt;Quoted prices in active markets for identical assets or liabilities.&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&gt;&lt;p style="font-size: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="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in"&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;/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&gt;&lt;p style="font-size: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="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&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="From2021-01-01to2021-12-31" id="fid_666">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;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. At December, 2021 and 2020 there were no cash equivalents.&lt;/p&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:ReceivablesPolicyTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_667">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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. Bad debt expense for the years ended December 31, 2021 and 2020 was $1,605,660 and $332,027, respectively. At December 31, 2021 and December 31, 2020, the allowance for doubtful accounts was $1,678,000and $390,000, respectively.&lt;/p&gt;</us-gaap:ReceivablesPolicyTextBlock>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_866"
      unitRef="USD">1605660</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_868"
      unitRef="USD">332027</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_869"
      unitRef="USD">1678000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_870"
      unitRef="USD">390000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:InventoryPolicyTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_668">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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. Our reserve for obsolete inventory was $0 as of December 31, 2021 and December 31, 2020, respectively.&lt;/p&gt;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:InventoryValuationReserves
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_872"
      unitRef="USD">0</us-gaap:InventoryValuationReserves>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_669">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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="From2021-01-01to2021-12-31" id="fid_670">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:36pt"&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:36pt"&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:45px"&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="From2021-01-01to2021-12-31" id="fid_671">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 both&#160;the years ended December 31, 2021 and 2020, was $41,900.&lt;/p&gt;</us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_873"
      unitRef="USD">41900</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <tomz:AccountsPayablePolicyTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_672">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;As of December 31, 2021, two vendors accounted for approximately 53% of accounts payable. As of December 31, 2020, two vendors accounted for approximately 32% of accounts payable.&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 0px 0px 0in;text-indent:45px"&gt;For the year ended December 31, 2021, two vendors accounted for 65% of cost of sales. For the year ended December 31, 2020, two vendors accounted for 76% of cost of sales.&lt;/p&gt;</tomz:AccountsPayablePolicyTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember"
      decimals="INF"
      id="fid_888"
      unitRef="Pure">0.53</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2020-01-01to2020-12-31_tomz_TwoVendorsMember_us-gaap_AccountsPayableMember"
      decimals="INF"
      id="fid_889"
      unitRef="Pure">0.32</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-01to2021-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"
      decimals="INF"
      id="fid_891"
      unitRef="Pure">0.65</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2020-01-01to2020-12-31_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"
      decimals="INF"
      id="fid_893"
      unitRef="Pure">0.76</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ExtendedProductWarrantyPolicy contextRef="From2021-01-01to2021-12-31" id="fid_673">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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, 2021, and December 31, 2020, our warranty reserve was $68,000 (See Note 14).&lt;/p&gt;</us-gaap:ExtendedProductWarrantyPolicy>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_878"
      unitRef="USD">68000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_674">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&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 Accounting Standards Codification (ASC) Topic 740: Income Taxes. Net deferred tax benefits have been fully reserved at December 31, 2021 and December 31, 2020. 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="From2021-01-01to2021-12-31" id="fid_675">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;Potentially dilutive securities as of December 31, 2020 consisted of 2,049,133 shares of common stock issuable upon exercise of outstanding warrants, 132,500 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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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, preferred stock and shares associated with the conversion of debt to purchase approximately 3.6 million and 2.2 million shares of common stock were outstanding at December 31, 2021 and 2020, respectively, but were excluded from the computation of diluted net loss per share at December 31, 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"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;(4,435,499&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,391,166&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&gt;Adjustments for convertible debt - as converted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;Interest on convertible 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="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;40,689&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%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0in"&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;(4,435,599&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,431,855&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 0px 0px 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;16,512,126&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;18,757,509&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 0px 0px 0in"&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:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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.25&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.27&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 0px 0px 0in"&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.25&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.23&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 0px 0px 0in;text-indent:45px"&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"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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"&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;(4,435,599&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,391,166&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 0px 0px 0in"&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"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;16,512,126&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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"&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;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;/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;Convertible 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%;white-space: nowrap;"&gt;&lt;p style="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"&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;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;/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;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;63,750&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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;18,757,509&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%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0in"&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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0in"&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.25&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.27&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 0px 0px 0in"&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.25&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.23&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 0px 0px 0in"&gt;Note: Warrants, options and preferred stock for the years ended December 31, 2021 are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.&lt;/p&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_909"
      unitRef="Shares">3381021</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2021-01-01to2021-12-31_tomz_StockOptionsMember"
      decimals="0"
      id="fid_1038"
      unitRef="Shares">143000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:CommonStockIssuableUponConversionOfOutstandingShares
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_1039"
      unitRef="Shares">63750</tomz:CommonStockIssuableUponConversionOfOutstandingShares>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_910"
      unitRef="Shares">2049133</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2020-01-01to2020-12-31_tomz_StockOptionsMember"
      decimals="0"
      id="fid_1037"
      unitRef="Shares">132500</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:CommonStockIssuableUponConversionOfOutstandingShares
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_1040"
      unitRef="Shares">63750</tomz:CommonStockIssuableUponConversionOfOutstandingShares>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2021-12-31_tomz_EquityIncentivePlanOneMember"
      decimals="-5"
      id="fid_902"
      unitRef="Shares">3600000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="AsOf2021-12-31_tomz_EquityIncentivePlanOneMember"
      decimals="-5"
      id="fid_905"
      unitRef="Shares">2200000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_684">&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;(4,435,499&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,391,166&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&gt;Adjustments for convertible debt - as converted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;Interest on convertible 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="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;40,689&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%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0in"&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;(4,435,599&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,431,855&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 0px 0px 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;16,512,126&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;18,757,509&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 0px 0px 0in"&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:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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.25&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.27&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 0px 0px 0in"&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.25&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.23&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: #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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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"&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;(4,435,599&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,391,166&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 0px 0px 0in"&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"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;16,512,126&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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"&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;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;/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;Convertible 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%;white-space: nowrap;"&gt;&lt;p style="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"&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;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;/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;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;63,750&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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;18,757,509&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%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0in"&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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0in"&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.25&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.27&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 0px 0px 0in"&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.25&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.23&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:ImpairmentEffectsOnEarningsPerShareTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_708"
      unitRef="USD">-4435499</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_709"
      unitRef="USD">4391166</us-gaap:NetIncomeLoss>
    <tomz:InterestOnConvertibleDebt
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_710"
      unitRef="USD">0</tomz:InterestOnConvertibleDebt>
    <tomz:InterestOnConvertibleDebt
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_711"
      unitRef="USD">40689</tomz:InterestOnConvertibleDebt>
    <tomz:NetLossAttributableToCommonShareholders
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_712"
      unitRef="USD">-4435599</tomz:NetLossAttributableToCommonShareholders>
    <tomz:NetLossAttributableToCommonShareholders
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_713"
      unitRef="USD">4431855</tomz:NetLossAttributableToCommonShareholders>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_715"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_716"
      unitRef="Shares">16512126</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_717"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_718"
      unitRef="Shares">18757509</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <tomz:Basic
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_720"
      unitRef="USDPShares">-0.25</tomz:Basic>
    <tomz:Basic
      contextRef="From2020-01-01to2020-12-31"
      decimals="INF"
      id="fid_721"
      unitRef="USDPShares">0.27</tomz:Basic>
    <tomz:Diluted
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_722"
      unitRef="USDPShares">-0.25</tomz:Diluted>
    <tomz:Diluted
      contextRef="From2020-01-01to2020-12-31"
      decimals="INF"
      id="fid_723"
      unitRef="USDPShares">0.23</tomz:Diluted>
    <us-gaap:NetIncomeLoss
      contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      id="fid_724"
      unitRef="USD">-4435599</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      id="fid_725"
      unitRef="USD">4391166</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      id="fid_726"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      id="fid_727"
      unitRef="Shares">16512126</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants
      contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      id="fid_729"
      unitRef="Shares">2049133</us-gaap:IncrementalCommonSharesAttributableToCallOptionsAndWarrants>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      id="fid_731"
      unitRef="Shares">132500</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements
      contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      id="fid_733"
      unitRef="Shares">63750</us-gaap:IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      id="fid_735"
      unitRef="Shares">17538994</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="0"
      id="fid_734"
      unitRef="Shares">18757509</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="INF"
      id="fid_736"
      unitRef="USDPShares">-0.25</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="INF"
      id="fid_737"
      unitRef="USDPShares">0.27</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="INF"
      id="fid_738"
      unitRef="USDPShares">-0.25</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2020-01-01to2020-12-31_tomz_DilutedNetIncomeorLossMember"
      decimals="INF"
      id="fid_739"
      unitRef="USDPShares">0.23</us-gaap:EarningsPerShareDiluted>
    <us-gaap:RevenueRecognitionPolicyTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_676">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 0px 0px 0in"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 0px 0px 0in"&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"&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"&gt;&lt;strong&gt;For The Years Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Change &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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in; 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 0px 0px 0in"&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,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;22,971,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;(16,792,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 0in"&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,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;2,057,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;(482,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 0px 0px 0in"&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;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;25,028,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;(17,274,000&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"&gt;&#160; &lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For The Years Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in; 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 0px 0px 0in"&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,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;18,367,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;(11,964,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 0in"&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;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;6,661,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;(5,310,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 0px 0px 0in"&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;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;25,028,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;(17,274,000&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;&#160;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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;As of December 31, 2021, and December 31, 2020 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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;&#160;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="From2021-01-01to2021-12-31" id="fid_685">&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"&gt;&lt;strong&gt;For The Years Ended&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Change &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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in; 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 0px 0px 0in"&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,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;22,971,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;(16,792,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 0in"&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,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;2,057,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;(482,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 0px 0px 0in"&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;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;25,028,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;(17,274,000&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: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For The Years Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in; 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 0px 0px 0in"&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,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;18,367,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;(11,964,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 0in"&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;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;6,661,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;(5,310,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 0px 0px 0in"&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;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;25,028,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;(17,274,000&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:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_tomz_SteraMistProductMember"
      decimals="0"
      id="fid_742"
      unitRef="USD">6179000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2020-01-01to2020-12-31_tomz_SteraMistProductMember"
      decimals="0"
      id="fid_747"
      unitRef="USD">22971000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2021-01-01to2021-12-31_tomz_SteraMistProductMember"
      decimals="0"
      id="fid_1623"
      unitRef="USD">-16792000</tomz:ChangesInRevenue>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_tomz_ServiceAndTrainingMember"
      decimals="0"
      id="fid_743"
      unitRef="USD">1575000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2020-01-01to2020-12-31_tomz_ServiceAndTrainingMember"
      decimals="0"
      id="fid_749"
      unitRef="USD">2057000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2021-01-01to2021-12-31_tomz_ServiceAndTrainingMember"
      decimals="0"
      id="fid_1622"
      unitRef="USD">-482000</tomz:ChangesInRevenue>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_tomz_ProductAndServiceRevenueMember"
      decimals="0"
      id="fid_746"
      unitRef="USD">7754000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2020-01-01to2020-12-31_tomz_ProductAndServiceRevenueMember"
      decimals="0"
      id="fid_748"
      unitRef="USD">25028000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2021-01-01to2021-12-31_tomz_ProductAndServiceRevenueMember"
      decimals="0"
      id="fid_752"
      unitRef="USD">-17274000</tomz:ChangesInRevenue>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_us-gaap_DomesticCountryMember"
      decimals="0"
      id="fid_744"
      unitRef="USD">6403000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2020-01-01to2020-12-31_us-gaap_DomesticCountryMember"
      decimals="0"
      id="fid_750"
      unitRef="USD">18367000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2021-01-01to2021-12-31_us-gaap_DomesticCountryMember"
      decimals="0"
      id="fid_1621"
      unitRef="USD">-11964000</tomz:ChangesInRevenue>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_tomz_InternationalMember"
      decimals="0"
      id="fid_745"
      unitRef="USD">1351000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2020-01-01to2020-12-31_tomz_InternationalMember"
      decimals="0"
      id="fid_751"
      unitRef="USD">6661000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2021-01-01to2021-12-31_tomz_InternationalMember"
      decimals="0"
      id="fid_1620"
      unitRef="USD">5310000</tomz:ChangesInRevenue>
    <us-gaap:Revenues
      contextRef="From2021-01-01to2021-12-31_tomz_RevenueByGeographicRegionMember"
      decimals="0"
      id="fid_1618"
      unitRef="USD">7754000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2020-01-01to2020-12-31_tomz_RevenueByGeographicRegionMember"
      decimals="0"
      id="fid_1619"
      unitRef="USD">25028000</us-gaap:Revenues>
    <tomz:ChangesInRevenue
      contextRef="From2021-01-01to2021-12-31_tomz_RevenueByGeographicRegionMember"
      decimals="0"
      id="fid_753"
      unitRef="USD">-17274000</tomz:ChangesInRevenue>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="From2021-01-01to2021-12-31" id="fid_677">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 0px 0px 0in;text-indent:45px"&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. 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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 years ended December 31, 2021 and 2020, we issued 50,000 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_906"
      unitRef="Shares">2000000</us-gaap:CommonStockSharesAuthorized>
    <tomz:CommonStockSharesIssuedVested
      contextRef="From2021-01-01to2021-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember"
      decimals="0"
      id="fid_1044"
      unitRef="Shares">50000</tomz:CommonStockSharesIssuedVested>
    <tomz:CommonStockSharesIssuedVested
      contextRef="From2020-01-01to2020-12-31_tomz_EquityIncentivePlanOneMember_srt_DirectorMember"
      decimals="0"
      id="fid_908"
      unitRef="Shares">50000</tomz:CommonStockSharesIssuedVested>
    <us-gaap:ConcentrationRiskCreditRisk contextRef="From2021-01-01to2021-12-31" id="fid_678">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_887"
      unitRef="USD">250000</us-gaap:FederalDepositInsuranceCorporationPremiumExpense>
    <tomz:LonglivedAssetsIncludingAcquiredIntangibleAssets contextRef="From2021-01-01to2021-12-31" id="fid_679">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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, 2021 and 2020.&lt;/p&gt;</tomz:LonglivedAssetsIncludingAcquiredIntangibleAssets>
    <us-gaap:AdvertisingCostsPolicyTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_680">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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, 2021 and 2020 were approximately $701,000 and $276,000, respectively.&lt;/p&gt;</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_880"
      unitRef="USD">701000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_882"
      unitRef="USD">276000</us-gaap:AdvertisingExpense>
    <us-gaap:ResearchAndDevelopmentExpensePolicy contextRef="From2021-01-01to2021-12-31" id="fid_681">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;We expense research and development expenses in the period in which they are incurred. For the years ended December 31, 2021 and 2020, research and development expenses were approximately $573,000 and $455,000, respectively.&lt;/p&gt;</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <tomz:ResearchAndDevelopmentsExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_884"
      unitRef="USD">573000</tomz:ResearchAndDevelopmentsExpense>
    <tomz:ResearchAndDevelopmentsExpense
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_886"
      unitRef="USD">455000</tomz:ResearchAndDevelopmentsExpense>
    <us-gaap:BusinessCombinationsPolicy contextRef="From2021-01-01to2021-12-31" id="fid_682">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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="From2021-01-01to2021-12-31" id="fid_683">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&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. The disclosure requirements can be applied either retrospectively or prospectively to all transactions in the scope of the amendments that are reflected in the financial statements at the date of initial application and new transactions that are entered into after the date of initial application. The 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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;In December 2019, the FASB issued ASU No. 2019-12, Simplifying the Accounting for Income Taxes, as part of its initiative to reduce complexity in accounting standards. The amendments in the ASU include removing exceptions to incremental intraperiod tax allocation of losses and gains from different financial statement components, exceptions to the method of recognizing income taxes on interim period losses, and exceptions to deferred tax liability recognition related to foreign subsidiary investments. In addition, the ASU requires that entities recognize franchise tax based on an incremental method and requires an entity to evaluate the accounting for step-ups in the tax basis of goodwill as inside or outside of a business combination. We adopted ASU 2019-12 starting 2021, which did not have a material impact on our consolidated financial statements.&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:InventoryDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_646">&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,404,025&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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="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;450,200&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;377,490&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;3,781,515&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="From2021-01-01to2021-12-31" id="fid_686">&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,404,025&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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="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;450,200&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;377,490&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;3,781,515&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="AsOf2021-12-31"
      decimals="0"
      id="fid_757"
      unitRef="USD">4293080</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_758"
      unitRef="USD">3404025</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryRawMaterials
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_759"
      unitRef="USD">450200</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_760"
      unitRef="USD">377490</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_761"
      unitRef="USD">4743280</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_762"
      unitRef="USD">3781515</us-gaap:InventoryNet>
    <tomz:VendorDepositsTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_647">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;On December 31, 2021 and December 31, 2020, we maintained vendor deposits of $288,586 and $388,712, respectively, for open purchase orders for inventory.&lt;/p&gt;</tomz:VendorDepositsTextBlock>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_648">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;&#160;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 0px 0px 0in; 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 0px 0px 0in; 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: #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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,580,743&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;203,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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0px 0px 0in"&gt;Tenant Improvement 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="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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="width:1%;white-space: nowrap;"&gt;&lt;p style="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,993,507&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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,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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,695,404&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,298,103&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 0px 0px 0in;text-indent:45px"&gt;For the years ended December 31, 2021 and 2020, depreciation was $283,259 and $342,523, respectively. For the years ended December 31, 2021 and 2020, 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="From2021-01-01to2021-12-31" id="fid_687">&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 0px 0px 0in; 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 0px 0px 0in; 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: #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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,580,743&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;203,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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0px 0px 0in"&gt;Tenant Improvement 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="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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="width:1%;white-space: nowrap;"&gt;&lt;p style="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,993,507&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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,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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,695,404&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,298,103&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="AsOf2021-12-31"
      decimals="0"
      id="fid_763"
      unitRef="USD">357236</us-gaap:FurnitureAndFixturesGross>
    <us-gaap:FurnitureAndFixturesGross
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_764"
      unitRef="USD">357236</us-gaap:FurnitureAndFixturesGross>
    <tomz:Equipments
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_765"
      unitRef="USD">1688236</tomz:Equipments>
    <tomz:Equipments
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_766"
      unitRef="USD">1580743</tomz:Equipments>
    <us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_767"
      unitRef="USD">60703</us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles>
    <us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_768"
      unitRef="USD">60703</us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles>
    <tomz:ComputerSoftware
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_769"
      unitRef="USD">232017</tomz:ComputerSoftware>
    <tomz:ComputerSoftware
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_770"
      unitRef="USD">203704</tomz:ComputerSoftware>
    <us-gaap:LeaseholdImprovementsGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_771"
      unitRef="USD">386120</us-gaap:LeaseholdImprovementsGross>
    <us-gaap:LeaseholdImprovementsGross
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_772"
      unitRef="USD">386120</us-gaap:LeaseholdImprovementsGross>
    <us-gaap:ConstructionInProgressGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_773"
      unitRef="USD">405000</us-gaap:ConstructionInProgressGross>
    <us-gaap:ConstructionInProgressGross
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_774"
      unitRef="USD">405000</us-gaap:ConstructionInProgressGross>
    <us-gaap:CapitalizedCostsOilAndGasProducingActivitiesGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_775"
      unitRef="USD">376864</us-gaap:CapitalizedCostsOilAndGasProducingActivitiesGross>
    <us-gaap:CapitalizedCostsOilAndGasProducingActivitiesGross
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_776"
      unitRef="USD">0</us-gaap:CapitalizedCostsOilAndGasProducingActivitiesGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_777"
      unitRef="USD">3506176</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_778"
      unitRef="USD">2993507</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_779"
      unitRef="USD">2017857</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_780"
      unitRef="USD">1695404</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_781"
      unitRef="USD">1488319</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_782"
      unitRef="USD">1298103</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:Depreciation
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1048"
      unitRef="USD">283259</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_1050"
      unitRef="USD">342523</us-gaap:Depreciation>
    <tomz:AmortizationOfTenantImprovementAllowance
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1054"
      unitRef="USD">39194</tomz:AmortizationOfTenantImprovementAllowance>
    <us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_649">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 $11,406 and $377,237 for the years ended December 31, 2021 and 2020, respectively.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 0px 0px 0in"&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;&#160;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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,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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,000,012&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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,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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,856,991&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;143,021&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 0px 0px 0in;text-indent:45px"&gt;Indefinite life intangible assets consist of the following:&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;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 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;578,895&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%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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: 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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;722,916&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 0px 0px 0in;text-indent:45px"&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;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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:85%"&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;&lt;span style="text-decoration:underline"&gt;Year Ended&lt;/span&gt;&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"&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;/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;December 31, 2022 &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,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;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;10,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;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;10,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;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;10,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;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;10,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;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: 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;147,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;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;197,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:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1056"
      unitRef="USD">11406</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_1058"
      unitRef="USD">377237</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_688">&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;&#160;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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,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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,000,012&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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,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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,856,991&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;143,021&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="AsOf2021-12-31"
      decimals="0"
      id="fid_783"
      unitRef="USD">3065584</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_784"
      unitRef="USD">3000012</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_785"
      unitRef="USD">2868397</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_786"
      unitRef="USD">2856991</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <tomz:IntangibleAssetsNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_787"
      unitRef="USD">197187</tomz:IntangibleAssetsNet>
    <tomz:IntangibleAssetsNet
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_788"
      unitRef="USD">143021</tomz:IntangibleAssetsNet>
    <us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_689">&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 style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;578,895&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%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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: 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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;722,916&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="AsOf2021-12-31"
      decimals="0"
      id="fid_789"
      unitRef="USD">759097</us-gaap:IndefiniteLivedTrademarks>
    <us-gaap:IndefiniteLivedTrademarks
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_790"
      unitRef="USD">578895</us-gaap:IndefiniteLivedTrademarks>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_791"
      unitRef="USD">956284</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_792"
      unitRef="USD">722916</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_690">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:85%"&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;&lt;span style="text-decoration:underline"&gt;Year Ended&lt;/span&gt;&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"&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;/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;December 31, 2022 &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,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;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;10,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;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;10,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;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;10,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;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;10,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;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: 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;147,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;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;197,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:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_794"
      unitRef="USD">10000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_795"
      unitRef="USD">10000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_796"
      unitRef="USD">10000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_797"
      unitRef="USD">10000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_798"
      unitRef="USD">10000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_799"
      unitRef="USD">147000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_800"
      unitRef="USD">197000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:LeasesOfLesseeDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_650">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&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 was scheduled to commence on December 1, 2018 or 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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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"&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 0px 0px 0in"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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="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 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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;631,527&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;81,223&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;953,190&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,034,413&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 0px 0px 0in;text-indent:45px"&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For the Year &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For the Year &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in"&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 0px 0px 0in; text-align:right;"&gt;&#160;7.25 years&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; text-align:right;"&gt;&#160;8.25 years&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&gt;Supplemental cash flow 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For the Year &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For the Year &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;146,688&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 0px 0px 0in;text-indent:45px"&gt;As of December 31, 2021, 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 0px 0px 0in"&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 0px 0px 0in"&gt;&lt;strong&gt;&#160;Operating 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 0px 0px 0in"&gt;December 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;155,621&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;399,978&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 0px 0px 0in"&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,226,191&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&gt;Less: 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;273,001&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 0px 0px 0in"&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;953,190&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;91,775&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 0px 0px 0in"&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;861,415&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="From2021-01-01to2021-12-31" id="fid_1624">P10Y</tomz:TermLease>
    <us-gaap:AreaOfLand
      contextRef="AsOf2018-04-30"
      decimals="INF"
      id="fid_1059"
      unitRef="sqft">9000</us-gaap:AreaOfLand>
    <us-gaap:OperatingLeasesRentExpenseNet
      contextRef="From2018-04-01to2018-04-30"
      decimals="0"
      id="fid_1060"
      unitRef="USD">143460</us-gaap:OperatingLeasesRentExpenseNet>
    <tomz:MaximumIncreasesRentPercentage
      contextRef="From2018-04-01to2018-04-30"
      decimals="INF"
      id="fid_1061"
      unitRef="Pure">0.03</tomz:MaximumIncreasesRentPercentage>
    <us-gaap:PaymentsForProceedsFromTenantAllowance
      contextRef="From2018-04-01to2018-04-30"
      decimals="0"
      id="fid_1062"
      unitRef="USD">405000</us-gaap:PaymentsForProceedsFromTenantAllowance>
    <us-gaap:WorkersCompensationDiscountPercent
      contextRef="From2018-04-01to2018-04-30"
      decimals="INF"
      id="fid_1693"
      unitRef="Pure">0.07</us-gaap:WorkersCompensationDiscountPercent>
    <us-gaap:LeaseCostTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_691">&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 0px 0px 0in"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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="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 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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;631,527&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;81,223&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;953,190&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,034,413&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="AsOf2021-12-31"
      decimals="0"
      id="fid_802"
      unitRef="USD">583271</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_803"
      unitRef="USD">631527</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_805"
      unitRef="USD">91775</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_806"
      unitRef="USD">81223</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_807"
      unitRef="USD">861415</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_808"
      unitRef="USD">953190</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_809"
      unitRef="USD">953190</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_810"
      unitRef="USD">1034413</us-gaap:OperatingLeaseLiability>
    <tomz:OperatingLeaseLiabilityTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_692">&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For the Year &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For the Year &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_811"
      unitRef="USD">157315</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_812"
      unitRef="USD">157315</us-gaap:OperatingLeaseExpense>
    <tomz:LeaseOtherInformationTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_693">&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in"&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 0px 0px 0in; text-align:right;"&gt;&#160;7.25 years&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; text-align:right;"&gt;&#160;8.25 years&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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="From2021-01-01to2021-12-31" id="fid_813">7.25 years</tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm>
    <tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm contextRef="From2020-01-01to2020-12-31" id="fid_814">8.25 years</tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm>
    <us-gaap:LesseeOperatingLeaseDiscountRate
      contextRef="AsOf2021-12-31"
      decimals="INF"
      id="fid_815"
      unitRef="Pure">0.0700</us-gaap:LesseeOperatingLeaseDiscountRate>
    <us-gaap:LesseeOperatingLeaseDiscountRate
      contextRef="AsOf2020-12-31"
      decimals="INF"
      id="fid_816"
      unitRef="Pure">0.0700</us-gaap:LesseeOperatingLeaseDiscountRate>
    <tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_694">&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For the Year &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;For the Year &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;146,688&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="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_817"
      unitRef="USD">151088</us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm>
    <us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_818"
      unitRef="USD">146688</us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm>
    <us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_695">&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 0px 0px 0in"&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 0px 0px 0in"&gt;&lt;strong&gt;&#160;Operating 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 0px 0px 0in"&gt;December 31, 2022&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;155,621&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;399,978&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 0px 0px 0in"&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,226,191&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&gt;Less: 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;273,001&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 0px 0px 0in"&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;953,190&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;91,775&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 0px 0px 0in"&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;861,415&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="AsOf2021-12-31"
      decimals="0"
      id="fid_819"
      unitRef="USD">155621</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_820"
      unitRef="USD">160290</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_821"
      unitRef="USD">165098</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_822"
      unitRef="USD">170051</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_823"
      unitRef="USD">175153</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_824"
      unitRef="USD">399978</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_825"
      unitRef="USD">1226191</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_826"
      unitRef="USD">273001</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_827"
      unitRef="USD">953190</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_828"
      unitRef="USD">91775</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_829"
      unitRef="USD">861415</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_651">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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 0px 0px 0in"&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;(115,229&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;(73,327&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: 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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;52,377&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 0px 0px 0in;text-indent:45px"&gt;Amortization expense for the years ended December 31, 2021 and 2020 was $41,900 and $41,900, respectively.&lt;/p&gt;</us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock>
    <tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_696">&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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 0px 0px 0in"&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;(115,229&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;(73,327&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: 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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;52,377&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="AsOf2021-12-31"
      decimals="0"
      id="fid_830"
      unitRef="USD">125704</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareGross
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_831"
      unitRef="USD">125704</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_832"
      unitRef="USD">115229</us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization>
    <us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_833"
      unitRef="USD">73327</us-gaap:CapitalizedComputerSoftwareAccumulatedAmortization>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_834"
      unitRef="USD">10475</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_835"
      unitRef="USD">52377</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1063"
      unitRef="USD">41900</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_1064"
      unitRef="USD">41900</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <tomz:CloudComputingServiceContractDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_652">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&gt;&lt;strong&gt;NOTE 9. 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 0px 0px 0in;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 0px 0px 0in;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, 2021. 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, 2021 and 2020 were $14,232 and $17,745, respectively.&lt;/p&gt;</tomz:CloudComputingServiceContractDisclosureTextBlock>
    <tomz:ProceedsFromServiceContractOfReceivables
      contextRef="From2021-05-01to2021-05-31"
      decimals="0"
      id="fid_1065"
      unitRef="USD">30409</tomz:ProceedsFromServiceContractOfReceivables>
    <tomz:AnnualPaymentsOnContractTerm contextRef="From2021-01-01to2021-12-31" id="fid_1625">P5Y</tomz:AnnualPaymentsOnContractTerm>
    <us-gaap:PrepaidExpenseAndOtherAssets
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_1066"
      unitRef="USD">66857</us-gaap:PrepaidExpenseAndOtherAssets>
    <us-gaap:CostOfGoodsAndServicesSoldAmortization
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1069"
      unitRef="USD">14232</us-gaap:CostOfGoodsAndServicesSoldAmortization>
    <us-gaap:CostOfGoodsAndServicesSoldAmortization
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_1067"
      unitRef="USD">17745</us-gaap:CostOfGoodsAndServicesSoldAmortization>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_653">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&gt;&lt;strong&gt;&lt;em&gt;Reverse Stock Split&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 0px 0px 0in;text-indent:45px"&gt;On September 9, 2020, the Board approved a reverse stock split of our common stock and our Convertible Series A Preferred Stock, in each case, at a ratio of 1-for-8 and without any change to the respective par value thereof (the &#x201c;Reverse Stock Split&#x201d;), and, on September 10, 2020, we filed an Articles of Amendment to our Articles of Incorporation with the Department of State of the State of Florida to effect the Reverse Stock Split. The Reverse Stock Split became effective as of September 10, 2020. All per-share and share amounts have been retroactively restated.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&gt;Our authorized Convertible Series A Preferred Stock, $0.01 par value, consists of 1,000,000 shares. At December 31, 2021 and 2020, 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 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&gt;Our authorized Convertible Series B Preferred Stock, $1,000 stated value, 7.5% cumulative dividend, consists of 4,000 shares. At December 31, 2021 and 2020, 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 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&gt;During the year ended December 31, 2020, we issued 50,000 shares of common stock valued at $48,000 to members of our Board (see Note 13). During the year ended December 31, 2020, we issued 500 shares of common stock valued at $2,190 to a consultant.&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 0px 0px 0in;text-indent:45px"&gt;In March 2020, 1,041,667 shares of common stock were issued in connection with the conversion of convertible notes payable aggregating $4,500,000.&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 0px 0px 0in;text-indent:45px"&gt;In March 2020, 10,417 shares of common stock were issued in connection with the exercise of warrants for which we received proceeds of $57,500.&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 0px 0px 0in;text-indent:45px"&gt;In May 2020, 2,500 shares of common stock were issued in connection with the exercise of options for which we received proceeds of $1,000.&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 0px 0px 0in;text-indent:45px"&gt;In June 2020, 26,940 shares of common stock were issued in connection with the exercise of warrants for which we received proceeds of $62,500.&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 0px 0px 0in;text-indent:45px"&gt;In July 2020, 26,940 shares of common stock were issued in connection with the exercise of warrants for which we received proceeds of $62,500.&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 0px 0px 0in;text-indent:45px"&gt;In October 2020, 12,500 shares of common stock were issued to our CFO in connection with the exercise of warrants for which we received proceeds of $30,000.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;In January 2021, we issued 50,000 shares of common stock valued at $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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;In September 2021, we sold 2,869,442 shares of common stock through a registered direct offering and issued 1,434,721 warrants 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 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 0px 0px 0in"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;In January 2020, we issued two options to purchase an aggregate of 31,250 shares of common stock to our Chief Operating Officer at an exercise price of $0.80 and $0.96 per share pursuant to her employment agreement with us. The options were valued at a total of $23,595 and have a term of 5 years. We utilized the Black-Scholes method to fair value the options received by the COO with the following assumptions: volatility, 135%; expected dividend yield, 0%; risk free interest rate, 1.64%; and a life of 5 years. The grant date fair value of each share of common stock underlying the options was $0.72 and $0.80. The value of the stock option was included in accrued expenses at December 31, 2019.&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 0px 0px 0in;text-indent:45px"&gt;In October 2020, we issued options to purchase an aggregate of 31,250 shares of common stock to our Chief Operating Officer at an exercise price of $7.06 per share pursuant to her employment agreement with us. The options were valued at a total of $202,104 and have a term of 5 years. We utilized the Black-Scholes method to fair value the options received by the COO with the following assumptions: volatility, 154%; expected dividend yield, 0%; risk free interest rate, 0.67%; and a life of 5 years. The grant date fair value of each share of common stock underlying the options was $6.47.&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 0px 0px 0in;text-indent:45px"&gt;In December 2021, we issued options to purchase an aggregate of 10,500 shares of common stock to employees at an exercise price of $1.93 per share. The options were valued at a total of $18,354 and have a term of 5 years. We utilized the Black-Scholes method to fair value the options received by the employees with the following assumptions: volatility, 156%; expected dividend yield, 0%; risk free interest rate, 1.25%; and a life of 5 years. The grant date fair value of each share of common stock underlying the options was $1.75.&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 0px 0px 0in;text-indent:45px"&gt;The following table summarizes stock options outstanding as of December 31, 2021 and 2020:&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 0px 0px 0in; 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;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;December 31, 2020&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;77,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.56&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;&#160;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;62,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;3.96&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;-&#160;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;(2,500&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.40&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;(5,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;16.80&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;&#160;132,500&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.72&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 0px 0px 0in;text-indent:45px"&gt;Options outstanding and exercisable by price range as of December 31, 2021 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: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Remaining&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Contractual&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Weighted&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&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:9%;"&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:9%;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:9%;vertical-align:bottom;text-align:right;"&gt;3.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:9%;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:9%;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;2.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;2.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.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.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;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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:#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.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;3.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:#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.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;4.10&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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:#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;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="BORDER-BOTTOM: black 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: black 1px solid;vertical-align:bottom;text-align:right;"&gt;31,250&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: black 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: black 1px solid;vertical-align:bottom;text-align:right;"&gt;3.75&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: black 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: black 1px solid;vertical-align:bottom;text-align:right;"&gt;31,250&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: black 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;"&gt;7.06&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="white-space: nowrap;"&gt;&lt;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"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;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"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;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"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;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"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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;143,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;2.89&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;143,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;2.66&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 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&gt;In January 2020 we issued a warrant to purchase 156,250 shares of common stock to our Chief Executive Officer at an exercise price of $1.20 per share pursuant to an employment agreement. The warrant was valued at $164,201 and has a term of 5 years. We utilized the Black-Scholes model to fair value the warrant received by our Chief Executive Officer with the following assumptions: volatility, 136%; expected dividend yield, 0%; risk free interest rate, 1.64%; and a life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $1.04.&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 0px 0px 0in;text-indent:45px"&gt;In January 2020 we issued a warrant to purchase 5,208 shares of common stock to an employee at an exercise price of $0.96 per share. The warrant was valued at $3,594 and has a term of 5 years. We utilized the Black-Scholes model to fair value the warrant received by the employee with the following assumptions: volatility, 135%; expected dividend yield, 0%; risk free interest rate, 1.58%; and a life of 5 years. The grant date fair value of each share of common stock underlying the warrant was $0.72. The value of the warrants was expensed in the fourth quarter of 2019 and included in accrued expenses at December 31, 2019.&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 0px 0px 0in;text-indent:45px"&gt;In February 2020 we issued a warrant to purchase 18,750 shares of common stock to an employee at an exercise price of $1.20 per share. The warrant was valued at $18,571 and has a term of 3 years. We utilized the Black-Scholes model to fair value the warrant received by the employee with the following assumptions: volatility, 155%; expected dividend yield, 0%; risk free interest rate, 1.64%; and a life of 3 years. The grant date fair value of each share of common stock underlying the warrant was $0.96.&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 0px 0px 0in;text-indent:45px"&gt;In April 2020 we issued a warrant to purchase 12,500 shares of common stock to our Chief Executive Officer at an exercise price of $4.00 per share pursuant to an employment agreement. The warrant was valued at $49,693 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, 173%; expected dividend yield, 0%; risk free interest rate, 0.68%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $4.00.&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 0px 0px 0in;text-indent:45px"&gt;In April 2020 we issued a warrant to purchase 6,250 shares of common stock to our Chief Operating Officer at an exercise price of $4.00 per share pursuant to an employment agreement. The warrant was valued at $24,846 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, 173%; expected dividend yield, 0%; risk free interest rate, 0.68%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $4.00.&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 0px 0px 0in;text-indent:45px"&gt;In April 2020 we issued a warrant to purchase 6,250 shares of common stock to our Chief Financial Officer at an exercise price of $4.00 per share pursuant to an employment agreement. The warrant was valued at $24,846 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, 173%; expected dividend yield, 0%; risk free interest rate, 0.68%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $4.00.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;In April 2020 we issued a warrant to purchase 3,750 shares of common stock to a consultant at an exercise price of 4.00 per share. The warrant was valued at $14,908 and has a term of 10 years. We utilized the Black-Scholes model to fair value the warrant received by the consultant with the following assumptions: volatility, 173%; expected dividend yield, 0%; risk free interest rate, 0.68%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $4.00.&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 0px 0px 0in;text-indent:45px"&gt;In August 2020 we issued a warrant to purchase 893 shares of common stock to a consultant at an exercise price of $8.40 per share. The warrant was valued at $6,372 and has a term of 3 years. We utilized the Black-Scholes model to fair value the warrant received by the consultant with the following assumptions: volatility, 166%; expected dividend yield, 0%; risk free interest rate, 0.13%; and a life of 3 years. The grant date fair value of each share of common stock underlying the warrant was $7.13.&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 0px 0px 0in;text-indent:45px"&gt;In August 2020 we issued a warrant to purchase 595 shares of common stock to a consultant at an exercise price of $8.40 per share. The warrant was valued at $4,249 and has a term of 3 years. We utilized the Black-Scholes model to fair value the warrant received by the consultant with the following assumptions: volatility, 166%; expected dividend yield, 0%; risk free interest rate, 0.13%; and a life of 3 years. The grant date fair value of each share of common stock underlying the warrant was $7.14.&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 0px 0px 0in;text-indent:45px"&gt;In October 2020 we issued a warrant to purchase 375,000 shares of common stock to our Chief Executive Officer at an exercise price of $6.95 per share pursuant to an employment agreement. The warrant was valued at $2,621,196 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, 162%; expected dividend yield, 0%; risk free interest rate, 0.67%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $6.99.&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 0px 0px 0in;text-indent:45px"&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. The $314,500 charge in connection with the warrant amendment has been included in General and Administrative expenses for the&#160;year ended December 31, 2021.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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. 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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;The following table summarizes the outstanding common stock warrants as of December 31, 2021 and 2020:&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 0px 0px 0in; 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;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;December 31, 2020&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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;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 0px 0px 0in; 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 0px 0px 0in; 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;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;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 0px 0px 0in; 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 0px 0px 0in; 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="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,155,065&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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.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;/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 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;585,447&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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.97&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;(76,796&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;(2.77&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 0in"&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;(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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;(614,583&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;(6.40&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,049,133&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.55&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 0px 0px 0in;text-indent:45px"&gt;Warrants outstanding and exercisable by price range as of December 31, 2021 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 0px 0px 0in; 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"/&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Average Weighted&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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:9%;"&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: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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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.90&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;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;158,125&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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.76&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;158,125&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&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;473,958&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;0.94&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;473,958&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&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;2.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;2.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.36&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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,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;0.82&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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,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.36&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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.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;1.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:#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.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;4.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:#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.32&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;523,061&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;0.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;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;523,061&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&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.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;/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;8.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;8.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,488&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.62&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,488&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;3,381,021&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;3.66&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;3,381,021&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.22&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 0px 0px 0in;text-indent:45px"&gt;There were no unvested warrants outstanding as of December 31, 2021.&lt;/p&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:StockholdersEquityReverseStockSplit contextRef="From2021-01-01to2021-12-31" id="fid_1348">reverse stock split of our common stock and our Convertible Series A Preferred Stock, in each case, at a ratio of 1-for-8 and without any change to the respective par value thereof (the &#x201c;Reverse Stock Split&#x201d;), and, on September 10, 2020</us-gaap:StockholdersEquityReverseStockSplit>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2020-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="INF"
      id="fid_1449"
      unitRef="USDPShares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2021-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_1447"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2020-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_1451"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2021-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_1458"
      unitRef="Shares">4000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1375"
      unitRef="Shares">50000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <tomz:CommonStockSharesFullyVestedAmount
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1376"
      unitRef="USD">48000</tomz:CommonStockSharesFullyVestedAmount>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_1463"
      unitRef="Shares">500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <tomz:CommonStockSharesFullyVestedAmount
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_1464"
      unitRef="USD">2190</tomz:CommonStockSharesFullyVestedAmount>
    <tomz:CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares
      contextRef="From2021-01-01to2021-12-31_tomz_MarchTwentyTwentyMember"
      decimals="0"
      id="fid_1377"
      unitRef="Shares">1041667</tomz:CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares>
    <tomz:CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount
      contextRef="From2021-01-01to2021-12-31_tomz_MarchTwentyTwentyMember"
      decimals="0"
      id="fid_1378"
      unitRef="USD">4500000</tomz:CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="From2021-01-01to2021-12-31_tomz_MarchTwentyTwentyMember"
      decimals="0"
      id="fid_1380"
      unitRef="Shares">10417</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockAmountConverted1
      contextRef="From2021-01-01to2021-12-31_tomz_MarchTwentyTwentyMember"
      decimals="0"
      id="fid_1383"
      unitRef="USD">57500</us-gaap:ConversionOfStockAmountConverted1>
    <tomz:CommonStockSharesIssuedUponExerciseOfOptionShares
      contextRef="From2021-01-01to2021-12-31_tomz_MayTwentyTwentyMember"
      decimals="0"
      id="fid_1385"
      unitRef="Shares">2500</tomz:CommonStockSharesIssuedUponExerciseOfOptionShares>
    <tomz:CommonStockSharesIssuedUponExerciseOfOptionAmount
      contextRef="From2021-01-01to2021-12-31_tomz_MayTwentyTwentyMember"
      decimals="0"
      id="fid_1386"
      unitRef="USD">1000</tomz:CommonStockSharesIssuedUponExerciseOfOptionAmount>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="From2021-01-01to2021-12-31_tomz_JuneTwentyTwentyMember"
      decimals="0"
      id="fid_1381"
      unitRef="Shares">26940</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockAmountConverted1
      contextRef="From2021-01-01to2021-12-31_tomz_JuneTwentyTwentyMember"
      decimals="0"
      id="fid_1384"
      unitRef="USD">62500</us-gaap:ConversionOfStockAmountConverted1>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="From2021-01-01to2021-12-31_tomz_JulyTwentyTwentyMember"
      decimals="0"
      id="fid_1379"
      unitRef="Shares">26940</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockAmountConverted1
      contextRef="From2021-01-01to2021-12-31_tomz_JulyTwentyTwentyMember"
      decimals="0"
      id="fid_1382"
      unitRef="USD">62500</us-gaap:ConversionOfStockAmountConverted1>
    <us-gaap:ConversionOfStockSharesConverted1
      contextRef="From2021-01-01to2021-12-31_tomz_OctoberTwoThousandTwentyMember"
      decimals="0"
      id="fid_1466"
      unitRef="Shares">12500</us-gaap:ConversionOfStockSharesConverted1>
    <us-gaap:ConversionOfStockAmountConverted1
      contextRef="From2021-01-01to2021-12-31_tomz_OctoberTwoThousandTwentyMember"
      decimals="0"
      id="fid_1467"
      unitRef="USD">30000</us-gaap:ConversionOfStockAmountConverted1>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2021-01-01to2021-12-31_tomz_JanuaryTwentyTwentyOneMember"
      decimals="0"
      id="fid_1387"
      unitRef="Shares">50000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:CommonStockValue
      contextRef="AsOf2021-09-30_tomz_JanuaryTwentyTwentyOneMember"
      decimals="0"
      id="fid_1390"
      unitRef="USD">228000</us-gaap:CommonStockValue>
    <tomz:CommonStockShareSold
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_1351"
      unitRef="Shares">2869442</tomz:CommonStockShareSold>
    <tomz:IssuedWarrantsInConcurrentPrivatePlacement
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_1642"
      unitRef="Shares">1434721</tomz:IssuedWarrantsInConcurrentPrivatePlacement>
    <us-gaap:ProceedsFromIssuanceOfWarrants
      contextRef="From2021-09-01to2021-09-30"
      decimals="0"
      id="fid_1694"
      unitRef="USD">4581651</us-gaap:ProceedsFromIssuanceOfWarrants>
    <tomz:ExercisePriceOfWarrant
      contextRef="AsOf2021-09-30"
      decimals="INF"
      id="fid_1355"
      unitRef="USDPShares">1.68</tomz:ExercisePriceOfWarrant>
    <tomz:IssuedWarrantsInConcurrentPlacementAgent
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_1643"
      unitRef="Shares">172167</tomz:IssuedWarrantsInConcurrentPlacementAgent>
    <tomz:ExercisePrice
      contextRef="From2021-09-01to2021-09-30"
      decimals="INF"
      id="fid_1644"
      unitRef="USDPShares">2.18</tomz:ExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="0"
      id="fid_1482"
      unitRef="Shares">31250</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1485"
      unitRef="USDPShares">0.80</tomz:GrantFairValueOfPerShare>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1487"
      unitRef="USDPShares">0.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockOption
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="0"
      id="fid_1483"
      unitRef="USD">23595</tomz:FairValueOfStockOption>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      id="fid_1484">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1479"
      unitRef="Pure">1.35</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1480"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1481"
      unitRef="Pure">0.0164</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2020-01-01to2020-01-31"
      decimals="INF"
      id="fid_1646"
      unitRef="USDPShares">0.80</tomz:GrantFairValueOfPerShare>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="0"
      id="fid_1493"
      unitRef="Shares">31250</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1497"
      unitRef="USDPShares">7.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockOption
      contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="0"
      id="fid_1494"
      unitRef="USD">202104</tomz:FairValueOfStockOption>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      id="fid_1495">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1490"
      unitRef="Pure">1.54</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1491"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1492"
      unitRef="Pure">0.0067</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2020-10-01to2020-10-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1496"
      unitRef="USDPShares">6.47</tomz:GrantFairValueOfPerShare>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="0"
      id="fid_1415"
      unitRef="Shares">10500</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1470"
      unitRef="USDPShares">1.93</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockOption
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="0"
      id="fid_1416"
      unitRef="USD">18354</tomz:FairValueOfStockOption>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1391"
      unitRef="Pure">1.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1399"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1407"
      unitRef="Pure">0.0125</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      id="fid_1471">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_StockOptionsMember"
      decimals="INF"
      id="fid_1626"
      unitRef="USDPShares">1.75</tomz:GrantFairValueOfPerShare>
    <us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_697">&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 0px 0px 0in; 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;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;December 31, 2020&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;77,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.56&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;&#160;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;62,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;3.96&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;-&#160;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;(2,500&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.40&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;(5,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;16.80&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;&#160;132,500&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.72&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="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1677"
      unitRef="Shares">132500</tomz:OutstandingBeginningOfPeriod>
    <tomz:WeightedAverageExercisePriceOutstandingBeginningBalance
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1684"
      unitRef="USDPShares">2.72</tomz:WeightedAverageExercisePriceOutstandingBeginningBalance>
    <tomz:OutstandingBeginningOfPeriod
      contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1679"
      unitRef="Shares">77500</tomz:OutstandingBeginningOfPeriod>
    <tomz:WeightedAverageExercisePriceOutstandingBeginningBalance
      contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1691"
      unitRef="USDPShares">2.56</tomz:WeightedAverageExercisePriceOutstandingBeginningBalance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1681"
      unitRef="Shares">10500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <tomz:WeightedAverageExercisePriceGranted
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1668"
      unitRef="USDPShares">1.93</tomz:WeightedAverageExercisePriceGranted>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1682"
      unitRef="Shares">62500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <tomz:WeightedAverageExercisePriceGranted
      contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1690"
      unitRef="USDPShares">3.96</tomz:WeightedAverageExercisePriceGranted>
    <tomz:WeightedAverageExercisePriceExercised
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1685"
      unitRef="USDPShares">0</tomz:WeightedAverageExercisePriceExercised>
    <tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod
      contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1676"
      unitRef="Shares">-2500</tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod>
    <tomz:WeightedAverageExercisePriceExercised
      contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1689"
      unitRef="USDPShares">0.40</tomz:WeightedAverageExercisePriceExercised>
    <tomz:WeightedAverageExercisePriceExpired
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1686"
      unitRef="USDPShares">0</tomz:WeightedAverageExercisePriceExpired>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1674"
      unitRef="Shares">5000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <tomz:WeightedAverageExercisePriceExpired
      contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1688"
      unitRef="USDPShares">16.80</tomz:WeightedAverageExercisePriceExpired>
    <tomz:OutstandingEndOfPeriod
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1670"
      unitRef="Shares">143000</tomz:OutstandingEndOfPeriod>
    <tomz:WeightedAverageExercisePriceOutstandingEndingBalance
      contextRef="From2021-01-01to2021-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1664"
      unitRef="USDPShares">2.66</tomz:WeightedAverageExercisePriceOutstandingEndingBalance>
    <tomz:OutstandingEndOfPeriod
      contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1672"
      unitRef="Shares">132500</tomz:OutstandingEndOfPeriod>
    <tomz:WeightedAverageExercisePriceOutstandingEndingBalance
      contextRef="From2020-01-01to2020-12-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1687"
      unitRef="USDPShares">2.72</tomz:WeightedAverageExercisePriceOutstandingEndingBalance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_698">&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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Remaining&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Contractual&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Weighted&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"&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:9%;"&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:9%;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:9%;vertical-align:bottom;text-align:right;"&gt;3.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:9%;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:9%;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;2.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;2.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.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.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;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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:#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.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;3.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:#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.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;4.10&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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:#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;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="BORDER-BOTTOM: black 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: black 1px solid;vertical-align:bottom;text-align:right;"&gt;31,250&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: black 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: black 1px solid;vertical-align:bottom;text-align:right;"&gt;3.75&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: black 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: black 1px solid;vertical-align:bottom;text-align:right;"&gt;31,250&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: black 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;"&gt;7.06&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="white-space: nowrap;"&gt;&lt;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"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;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"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;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"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;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"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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;143,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;2.89&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;143,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;2.66&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="AsOf2021-12-31_tomz_RangeOneMember"
      decimals="0"
      id="fid_1174"
      unitRef="Shares">27500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_RangeOneMember"
      id="fid_1181">P3Y2M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_RangeOneMember"
      decimals="0"
      id="fid_1188"
      unitRef="Shares">27500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_RangeOneMember"
      decimals="INF"
      id="fid_1195"
      unitRef="USDPShares">0.80</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_RangeSevenMember"
      decimals="0"
      id="fid_1179"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_RangeTwoMember"
      id="fid_1182">P2Y3D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_RangeSevenMember"
      decimals="0"
      id="fid_1193"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_RangeTwoMember"
      decimals="INF"
      id="fid_1196"
      unitRef="USDPShares">0.88</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_RangeThreeMember"
      decimals="0"
      id="fid_1176"
      unitRef="Shares">25000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_RangeThreeMember"
      id="fid_1183">P2Y7D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_RangeThreeMember"
      decimals="0"
      id="fid_1190"
      unitRef="Shares">25000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_RangeThreeMember"
      decimals="INF"
      id="fid_1197"
      unitRef="USDPShares">0.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_RangeFourMember"
      decimals="0"
      id="fid_1173"
      unitRef="Shares">10500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_RangeFourMember"
      id="fid_1204">P4Y11M15D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_RangeFourMember"
      decimals="0"
      id="fid_1203"
      unitRef="Shares">10500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_RangeFourMember"
      decimals="INF"
      id="fid_1202"
      unitRef="USDPShares">1.93</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_RangeFiveMember"
      decimals="0"
      id="fid_1177"
      unitRef="Shares">5000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_RangeFiveMember"
      id="fid_1184">P3Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_RangeFiveMember"
      decimals="0"
      id="fid_1191"
      unitRef="Shares">5000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_RangeFiveMember"
      decimals="INF"
      id="fid_1198"
      unitRef="USDPShares">2.16</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_RangeSixMember"
      decimals="0"
      id="fid_1178"
      unitRef="Shares">12500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_RangeSixMember"
      id="fid_1185">P4Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_RangeSixMember"
      decimals="0"
      id="fid_1192"
      unitRef="Shares">12500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_RangeSixMember"
      decimals="INF"
      id="fid_1199"
      unitRef="USDPShares">4.40</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_RangeTwoMember"
      decimals="0"
      id="fid_1175"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_RangeSevenMember"
      id="fid_1186">P3Y9M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_RangeTwoMember"
      decimals="0"
      id="fid_1189"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_RangeSevenMember"
      decimals="INF"
      id="fid_1200"
      unitRef="USDPShares">7.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_1206"
      unitRef="Shares">143000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="From2021-01-01to2021-12-31" id="fid_1180">P2Y10M20D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_1187"
      unitRef="Shares">143000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31"
      decimals="INF"
      id="fid_1194"
      unitRef="USDPShares">2.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1523"
      unitRef="Shares">156250</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1502"
      unitRef="USDPShares">1.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockWarrant
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1524"
      unitRef="USD">164201</tomz:FairValueOfStockWarrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1498"
      unitRef="Pure">1.36</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1520"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1517"
      unitRef="Pure">0.0164</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      id="fid_1629">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2020-01-01to2020-01-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1505"
      unitRef="USDPShares">1.04</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1530"
      unitRef="Shares">5208</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2020-01-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1532"
      unitRef="USDPShares">0.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockWarrant
      contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1531"
      unitRef="USD">3594</tomz:FairValueOfStockWarrant>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember"
      id="fid_1627">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1525"
      unitRef="Pure">1.35</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1526"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1527"
      unitRef="Pure">0.0158</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2020-01-01to2020-01-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1628"
      unitRef="USDPShares">0.72</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1541"
      unitRef="Shares">18750</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1540"
      unitRef="USDPShares">1.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockWarrant
      contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1542"
      unitRef="USD">18571</tomz:FairValueOfStockWarrant>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      id="fid_1538">P3Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1535"
      unitRef="Pure">1.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1536"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1537"
      unitRef="Pure">0.0164</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2020-02-01to2020-02-29_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1539"
      unitRef="USDPShares">0.96</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1436"
      unitRef="Shares">12500</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1553"
      unitRef="USDPShares">4.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockWarrant
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1443"
      unitRef="USD">49693</tomz:FairValueOfStockWarrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1549"
      unitRef="Pure">1.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1547"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1545"
      unitRef="Pure">0.0068</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember"
      id="fid_1543">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1630"
      unitRef="USDPShares">4.00</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember"
      decimals="0"
      id="fid_1438"
      unitRef="Shares">6250</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember"
      decimals="INF"
      id="fid_1554"
      unitRef="USDPShares">4.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockWarrant
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember"
      decimals="0"
      id="fid_1444"
      unitRef="USD">24846</tomz:FairValueOfStockWarrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember"
      decimals="INF"
      id="fid_1563"
      unitRef="Pure">1.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember"
      decimals="INF"
      id="fid_1561"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember"
      decimals="INF"
      id="fid_1559"
      unitRef="Pure">0.0068</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember"
      id="fid_1557">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantOneMember"
      decimals="INF"
      id="fid_1632"
      unitRef="USDPShares">4.00</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember"
      decimals="0"
      id="fid_1437"
      unitRef="Shares">6250</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember"
      decimals="INF"
      id="fid_1565"
      unitRef="USDPShares">4.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockWarrant
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember"
      decimals="0"
      id="fid_1445"
      unitRef="USD">24846</tomz:FairValueOfStockWarrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember"
      decimals="INF"
      id="fid_1574"
      unitRef="Pure">1.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember"
      decimals="INF"
      id="fid_1572"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember"
      decimals="INF"
      id="fid_1570"
      unitRef="Pure">0.0068</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember"
      id="fid_1568">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantTwoMember"
      decimals="INF"
      id="fid_1422"
      unitRef="USDPShares">4.00</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember"
      decimals="0"
      id="fid_1439"
      unitRef="Shares">3750</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember"
      decimals="INF"
      id="fid_1576"
      unitRef="USDPShares">4.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockWarrant
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember"
      decimals="0"
      id="fid_1446"
      unitRef="USD">14908</tomz:FairValueOfStockWarrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember"
      decimals="INF"
      id="fid_1585"
      unitRef="Pure">1.73</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember"
      decimals="INF"
      id="fid_1583"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember"
      decimals="INF"
      id="fid_1581"
      unitRef="Pure">0.0068</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember"
      id="fid_1579">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_AprilTwentyTwentyMember_tomz_StockWarrantThreeMember"
      decimals="INF"
      id="fid_1423"
      unitRef="USDPShares">4.00</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1606"
      unitRef="Shares">893</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2020-08-30_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1605"
      unitRef="USDPShares">8.40</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockWarrant
      contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1607"
      unitRef="USD">6372</tomz:FairValueOfStockWarrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1611"
      unitRef="Pure">1.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1612"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1613"
      unitRef="Pure">0.0013</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember"
      id="fid_1614">P3Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1604"
      unitRef="USDPShares">7.13</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1608"
      unitRef="Shares">595</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2020-08-30_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1609"
      unitRef="USDPShares">8.40</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockWarrant
      contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1610"
      unitRef="USD">4249</tomz:FairValueOfStockWarrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1600"
      unitRef="Pure">1.66</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1601"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1602"
      unitRef="Pure">0.0013</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2020-08-01to2020-08-31_tomz_ChiefOperatingOfficersMember_tomz_StockWarrantMember"
      id="fid_1603">P3Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2020-08-01to2020-08-31_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1615"
      unitRef="USDPShares">7.14</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1435"
      unitRef="Shares">375000</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1587"
      unitRef="USDPShares">6.95</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <tomz:FairValueOfStockWarrant
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember"
      decimals="0"
      id="fid_1440"
      unitRef="USD">2621196</tomz:FairValueOfStockWarrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1596"
      unitRef="Pure">1.62</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1594"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1592"
      unitRef="Pure">0.0067</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember"
      id="fid_1590">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2021-01-01to2021-12-31_tomz_ChiefOperatingOfficersMember_tomz_OctoberwentyTwentyMember_tomz_StockWarrantMember"
      decimals="INF"
      id="fid_1420"
      unitRef="USDPShares">6.99</tomz:GrantFairValueOfPerShare>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2021-02-01to2021-02-11"
      decimals="0"
      id="fid_1635"
      unitRef="Shares">125000</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <tomz:WarrantAmendmentDescription contextRef="From2021-02-01to2021-02-11" id="fid_1358">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_1633"
      unitRef="USD">314500</tomz:AggregateCashConsideration>
    <us-gaap:WarrantsAndRightsOutstanding
      contextRef="AsOf2021-09-30_tomz_PrivatePlacementsMember"
      decimals="0"
      id="fid_1637"
      unitRef="USD">1434721</us-gaap:WarrantsAndRightsOutstanding>
    <tomz:ExercisePriceOfWarrant
      contextRef="AsOf2021-09-30_tomz_PrivatePlacementsMember"
      decimals="INF"
      id="fid_1639"
      unitRef="USDPShares">1.68</tomz:ExercisePriceOfWarrant>
    <us-gaap:WarrantsAndRightsOutstanding
      contextRef="AsOf2021-09-30_tomz_PlacementAgentMember"
      decimals="0"
      id="fid_1641"
      unitRef="USD">172167</us-gaap:WarrantsAndRightsOutstanding>
    <tomz:ExercisePriceOfWarrant
      contextRef="AsOf2021-09-30_tomz_PlacementAgentMember"
      decimals="INF"
      id="fid_1357"
      unitRef="USDPShares">2.18</tomz:ExercisePriceOfWarrant>
    <us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_699">&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 0px 0px 0in; 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;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;December 31, 2020&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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;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 0px 0px 0in; 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 0px 0px 0in; 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;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;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 0px 0px 0in; 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 0px 0px 0in; 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="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,155,065&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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.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;/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 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;585,447&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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.97&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;(76,796&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;(2.77&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 0in"&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;(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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;(614,583&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;(6.40&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,049,133&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.55&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="AsOf2020-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1209"
      unitRef="Shares">2049133</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2020-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1218"
      unitRef="USDPShares">2.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2019-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1210"
      unitRef="Shares">2155065</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2019-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1225"
      unitRef="USDPShares">3.12</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1211"
      unitRef="Shares">1606888</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1219"
      unitRef="USDPShares">1.73</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1212"
      unitRef="Shares">585447</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1226"
      unitRef="USDPShares">4.97</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1220"
      unitRef="USDPShares">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod
      contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1214"
      unitRef="Shares">76796</tomz:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1227"
      unitRef="USDPShares">2.77</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1215"
      unitRef="Shares">262500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1221"
      unitRef="USDPShares">2.65</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
      contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1216"
      unitRef="Shares">614583</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="From2020-01-01to2020-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1228"
      unitRef="USDPShares">6.40</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1224"
      unitRef="Shares">3381021</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1223"
      unitRef="USDPShares">2.22</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2020-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1222"
      unitRef="Shares">2049133</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2020-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1229"
      unitRef="USDPShares">2.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <tomz:WarrantsOutstandingAndExercisableByPriceRange contextRef="From2021-01-01to2021-12-31" id="fid_700">&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 0px 0px 0in; 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"/&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;Average Weighted&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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:9%;"&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: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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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.90&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;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;158,125&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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.76&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;158,125&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&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;473,958&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;0.94&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;473,958&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&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;2.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;2.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.36&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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,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;0.82&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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,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.36&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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.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;1.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:#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.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;4.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:#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.32&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;523,061&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;0.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;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p 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;523,061&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&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.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;/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;8.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;8.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,488&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.62&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,488&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;3,381,021&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;3.66&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;3,381,021&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.22&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:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsOneMember"
      decimals="0"
      id="fid_1299"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsOneMember"
      id="fid_1300">P1Y10M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsOneMember"
      decimals="0"
      id="fid_1346"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsOneMember"
      decimals="INF"
      id="fid_1298"
      unitRef="USDPShares">0.64</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsTwoMember"
      decimals="0"
      id="fid_1302"
      unitRef="Shares">158125</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsTwoMember"
      id="fid_1303">P1Y9M3D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsTwoMember"
      decimals="0"
      id="fid_1347"
      unitRef="Shares">158125</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsTwoMember"
      decimals="INF"
      id="fid_1301"
      unitRef="USDPShares">0.80</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsThreeMember"
      decimals="0"
      id="fid_1235"
      unitRef="Shares">473958</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsThreeMember"
      id="fid_1306">P0Y11M8D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsThreeMember"
      decimals="0"
      id="fid_1305"
      unitRef="Shares">473958</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsThreeMember"
      decimals="INF"
      id="fid_1304"
      unitRef="USDPShares">0.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsFourMember"
      decimals="0"
      id="fid_1236"
      unitRef="Shares">6250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsFourMember"
      id="fid_1309">P2Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsFourMember"
      decimals="0"
      id="fid_1308"
      unitRef="Shares">6250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsFourMember"
      decimals="INF"
      id="fid_1307"
      unitRef="USDPShares">1.12</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsFiveMember"
      decimals="0"
      id="fid_1237"
      unitRef="Shares">175000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsFiveMember"
      id="fid_1312">P2Y10M17D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsFiveMember"
      decimals="0"
      id="fid_1311"
      unitRef="Shares">175000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsFiveMember"
      decimals="INF"
      id="fid_1310"
      unitRef="USDPShares">1.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsSixMember"
      decimals="0"
      id="fid_1238"
      unitRef="Shares">1250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsSixMember"
      id="fid_1315">P0Y9M25D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsSixMember"
      decimals="0"
      id="fid_1314"
      unitRef="Shares">1250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsSixMember"
      decimals="INF"
      id="fid_1313"
      unitRef="USDPShares">1.36</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsSevenMember"
      decimals="0"
      id="fid_1239"
      unitRef="Shares">1434721</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsSevenMember"
      id="fid_1318">P1Y9M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsSevenMember"
      decimals="0"
      id="fid_1317"
      unitRef="Shares">1434721</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsSevenMember"
      decimals="INF"
      id="fid_1316"
      unitRef="USDPShares">1.68</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsEightMember"
      decimals="0"
      id="fid_1240"
      unitRef="Shares">172167</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsEightMember"
      id="fid_1321">P4Y9M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsEightMember"
      decimals="0"
      id="fid_1320"
      unitRef="Shares">172167</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsEightMember"
      decimals="INF"
      id="fid_1319"
      unitRef="USDPShares">2.18</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsNineMember"
      decimals="0"
      id="fid_1241"
      unitRef="Shares">523061</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsNineMember"
      id="fid_1324">P0Y2M4D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsNineMember"
      decimals="0"
      id="fid_1323"
      unitRef="Shares">523061</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsNineMember"
      decimals="INF"
      id="fid_1322"
      unitRef="USDPShares">2.32</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsTenMember"
      decimals="0"
      id="fid_1244"
      unitRef="Shares">28750</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsTenMember"
      id="fid_1333">P8Y3M25D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsTenMember"
      decimals="0"
      id="fid_1332"
      unitRef="Shares">28750</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsTenMember"
      decimals="INF"
      id="fid_1331"
      unitRef="USDPShares">4.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsElevenMember"
      decimals="0"
      id="fid_1246"
      unitRef="Shares">375000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsElevenMember"
      id="fid_1339">P8Y9M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsElevenMember"
      decimals="0"
      id="fid_1338"
      unitRef="Shares">375000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsElevenMember"
      decimals="INF"
      id="fid_1337"
      unitRef="USDPShares">6.95</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsTwelveMember"
      decimals="0"
      id="fid_1247"
      unitRef="Shares">1488</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsTwelveMember"
      id="fid_1342">P1Y7M13D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsTwelveMember"
      decimals="0"
      id="fid_1341"
      unitRef="Shares">1488</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsTwelveMember"
      decimals="INF"
      id="fid_1340"
      unitRef="USDPShares">8.40</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1264"
      unitRef="Shares">3381021</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2021-01-01to2021-12-31_tomz_WarrantsMember"
      id="fid_1297">P3Y7M28D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2021-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1345"
      unitRef="Shares">3381021</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2021-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1280"
      unitRef="USDPShares">2.22</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_654">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;We may become a party to litigation in the normal course of business.&#160;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 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&gt;As of December 31, 2021 and 2020, 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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in;text-indent:45px"&gt;The COVID-19 pandemic has 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. It is difficult to predict how COVID-19 pandemic will affect the Company&#x2019;s financial performance in the remainder of 2022, 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="From2021-01-01to2021-12-31" id="fid_655">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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 0px 0px 0in"&gt;&lt;strong&gt;&lt;em&gt;Executive Agreements&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 0px 0px 0in"&gt;&lt;em&gt;&lt;span style="text-decoration:underline"&gt;Halden S. Shane&lt;/span&gt;&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 0px 0px 0in;text-indent:45px"&gt;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.&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;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&#x2019; salary at the time of such termination.&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 0in"&gt;&lt;em&gt;&lt;span style="text-decoration:underline"&gt;Elissa J. Shane&lt;/span&gt;&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 0px 0px 0in;text-indent:45px"&gt;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&#x2019; prior written notice of its intent to terminate the&#160;agreement.&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 0px 0px 0in;text-indent:45px"&gt;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&#x2019; salary at the time of such termination.&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"&gt;&lt;strong&gt;&lt;em&gt;Agreements with Directors&lt;/em&gt;&lt;/strong&gt;&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 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;For the year ended December 31, 2020, 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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;In June 2020 we entered into a manufacturing agreement with Planet Innovation Products, Pty Ltd (&#x201c;PI&#x201d;). 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;&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;In May 2020 we entered into an agreement 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 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:85%"&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;&lt;span style="text-decoration:underline"&gt;Year Ended&lt;/span&gt;&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"&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;/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, 2022 &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;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, 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:#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, 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:#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, 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:#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: 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;90,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 0px 0px 0in"&gt;&lt;strong&gt;&lt;em&gt;Other Agreements&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 0px 0px 0in;text-indent:45px"&gt;TOMI Service Network (&#x201c;TSN&#x201d;) is a national service network composed of existing full-service restoration industry specialists that have entered initially into licensing agreements with us to become Primary Service Providers (&#x201c;PSPs&#x201d;). The licensing agreements originally granted protected territories to PSPs to perform services using our SteraMist&lt;sup&gt;&#xae;&lt;/sup&gt; platform of products and also provide for potential job referrals to PSPs whereby we are entitled to referral fees. Additionally, the agreement provides for commissions due to PSPs for equipment and solution sales they facilitate to other service providers in their respective territories. As part of these agreements, we are obligated to provide to the PSPs various training, ongoing support and facilitate a referral network call center. As of December 31, 2021, we have 205 network companies in TSN. The nature and terms of our TSN agreements may represent multiple deliverable arrangements. Each of the deliverables in these arrangements typically represent a separate unit of accounting. There is no exclusivity in our TSN network.&lt;/p&gt;</tomz:ContractsAndAgreementsTextBlock>
    <us-gaap:SalariesAndWages
      contextRef="From2020-09-01to2020-09-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember"
      decimals="0"
      id="fid_1083"
      unitRef="USD">500000</us-gaap:SalariesAndWages>
    <us-gaap:ClassOfWarrantOrRightOutstanding
      contextRef="AsOf2020-09-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember"
      decimals="0"
      id="fid_1085"
      unitRef="Shares">375000</us-gaap:ClassOfWarrantOrRightOutstanding>
    <tomz:IssuanceOfOptionToPurchaseSharesOfCommonStock
      contextRef="AsOf2020-09-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember"
      decimals="0"
      id="fid_1087"
      unitRef="Shares">31250</tomz:IssuanceOfOptionToPurchaseSharesOfCommonStock>
    <tomz:ReimburseOfExpensesAssociatedWithUseOfAutomobile
      contextRef="From2020-09-01to2020-09-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember"
      decimals="0"
      id="fid_1088"
      unitRef="USD">750</tomz:ReimburseOfExpensesAssociatedWithUseOfAutomobile>
    <us-gaap:SalariesAndWages
      contextRef="From2021-01-01to2021-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      decimals="0"
      id="fid_1616"
      unitRef="USD">270000</us-gaap:SalariesAndWages>
    <us-gaap:ClassOfWarrantOrRightOutstanding
      contextRef="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      decimals="0"
      id="fid_1086"
      unitRef="Shares">93750</us-gaap:ClassOfWarrantOrRightOutstanding>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight
      contextRef="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      decimals="0"
      id="fid_1089"
      unitRef="Shares">93750</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight>
    <us-gaap:SaleOfStockPricePerShare
      contextRef="AsOf2020-10-01_tomz_TwoThousandSixteenEquityPlanMember"
      decimals="INF"
      id="fid_1092"
      unitRef="USDPShares">7.06</us-gaap:SaleOfStockPricePerShare>
    <tomz:WarrantsCancelled
      contextRef="AsOf2020-10-01_tomz_TwoThousandSixteenEquityPlanMember"
      decimals="0"
      id="fid_1093"
      unitRef="Shares">93750</tomz:WarrantsCancelled>
    <us-gaap:StockIssuedDuringPeriodSharesOther
      contextRef="From2021-01-01to2021-12-31_tomz_TwoThousandSixteenEquityPlanMember"
      decimals="0"
      id="fid_1617"
      unitRef="Shares">31250</us-gaap:StockIssuedDuringPeriodSharesOther>
    <us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles
      contextRef="AsOf2020-10-01_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      decimals="0"
      id="fid_1074"
      unitRef="USD">1000</us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles>
    <tomz:TermOfAgreement
      contextRef="From2020-09-01to2020-09-22_tomz_ExecutiveAgreementsWithHaldenSShaneMember"
      id="fid_1081">three years</tomz:TermOfAgreement>
    <us-gaap:PaymentForManagementFee
      contextRef="From2017-12-01to2017-12-31_tomz_BoardOfMembersMember"
      decimals="0"
      id="fid_1075"
      unitRef="USD">40000</us-gaap:PaymentForManagementFee>
    <us-gaap:PaymentForManagementFee
      contextRef="From2017-12-01to2017-12-31_tomz_CommitteeChairpersonMember"
      decimals="0"
      id="fid_1076"
      unitRef="USD">45000</us-gaap:PaymentForManagementFee>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2020-01-01to2020-12-31_tomz_BoardOfMembersMember"
      decimals="0"
      id="fid_1078"
      unitRef="Shares">50000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="From2020-01-01to2020-12-31_tomz_BoardOfMembersMember"
      decimals="0"
      id="fid_1079"
      unitRef="USD">48000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2021-01-01to2021-12-31_tomz_BoardOfMembersMember"
      decimals="0"
      id="fid_1077"
      unitRef="Shares">50000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="From2021-01-01to2021-12-31_tomz_BoardOfMembersMember"
      decimals="0"
      id="fid_1080"
      unitRef="USD">48000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <tomz:TermOfAgreement
      contextRef="From2020-09-01to2020-09-22_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      id="fid_1082">three years</tomz:TermOfAgreement>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights
      contextRef="AsOf2020-12-31_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      decimals="0"
      id="fid_1094"
      unitRef="Shares">30409</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights>
    <tomz:ApproximateMinimumContractPaymentsTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_701">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;margin-left:auto;margin-right:auto;width:85%"&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;&lt;span style="text-decoration:underline"&gt;Year Ended&lt;/span&gt;&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"&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;/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, 2022 &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;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, 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:#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, 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:#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, 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:#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: 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;90,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:ContractualObligationDueInNextTwelveMonths
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_836"
      unitRef="USD">30000</us-gaap:ContractualObligationDueInNextTwelveMonths>
    <us-gaap:ContractualObligationDueInSecondYear
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_837"
      unitRef="USD">30000</us-gaap:ContractualObligationDueInSecondYear>
    <us-gaap:ContractualObligationDueInThirdYear
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_838"
      unitRef="USD">30000</us-gaap:ContractualObligationDueInThirdYear>
    <us-gaap:ContractualObligationDueInFourthYear
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_839"
      unitRef="USD">0</us-gaap:ContractualObligationDueInFourthYear>
    <us-gaap:ContractualObligation
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_840"
      unitRef="USD">90000</us-gaap:ContractualObligation>
    <us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_656">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accrued expenses and other current liabilities consisted 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;151,709&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;84,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 0in"&gt;Director fees &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;41,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 0px 0px 0in"&gt;Sales Tax Payable &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;9,784&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&gt;Income Taxes Payable (Note 16)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;77,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 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;70,106&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;501,849&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="From2021-01-01to2021-12-31" id="fid_702">&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;151,709&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;84,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 0in"&gt;Director fees &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;41,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 0px 0px 0in"&gt;Sales Tax Payable &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;9,784&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&gt;Income Taxes Payable (Note 16)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;77,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 0in"&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:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;70,106&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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;501,849&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="AsOf2021-09-30"
      decimals="0"
      id="fid_841"
      unitRef="USD">228665</us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_842"
      unitRef="USD">151709</us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_843"
      unitRef="USD">241434</us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent>
    <us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_844"
      unitRef="USD">84000</us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent>
    <tomz:DirectorFeesCurrentAndNoncurrent
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_845"
      unitRef="USD">31250</tomz:DirectorFeesCurrentAndNoncurrent>
    <tomz:DirectorFeesCurrentAndNoncurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_846"
      unitRef="USD">41250</tomz:DirectorFeesCurrentAndNoncurrent>
    <tomz:SalesTaxPayable
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_847"
      unitRef="USD">19411</tomz:SalesTaxPayable>
    <tomz:SalesTaxPayable
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_848"
      unitRef="USD">9784</tomz:SalesTaxPayable>
    <us-gaap:AccruedIncomeTaxes
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_849"
      unitRef="USD">0</us-gaap:AccruedIncomeTaxes>
    <us-gaap:AccruedIncomeTaxes
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_850"
      unitRef="USD">77000</us-gaap:AccruedIncomeTaxes>
    <us-gaap:ExtendedProductWarrantyAccrualCurrent
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_851"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrualCurrent>
    <us-gaap:ExtendedProductWarrantyAccrualCurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_852"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrualCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_853"
      unitRef="USD">75848</us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_854"
      unitRef="USD">70106</us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2021-09-30"
      decimals="0"
      id="fid_855"
      unitRef="USD">664608</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_856"
      unitRef="USD">501849</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:GuaranteesTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_657">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&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"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;101,041&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;(75,618&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;(63,041&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 0in"&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="From2021-01-01to2021-12-31" id="fid_703">&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;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 0px 0px 0in"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;101,041&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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 0in"&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;(75,618&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;(63,041&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 0in"&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="AsOf2020-12-31"
      decimals="0"
      id="fid_857"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2019-12-31"
      decimals="0"
      id="fid_858"
      unitRef="USD">30000</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_859"
      unitRef="USD">75618</us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease>
    <us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_860"
      unitRef="USD">101041</us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease>
    <tomz:SettlementOfWarrantyClaims
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_861"
      unitRef="USD">-75618</tomz:SettlementOfWarrantyClaims>
    <tomz:SettlementOfWarrantyClaims
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_862"
      unitRef="USD">-63041</tomz:SettlementOfWarrantyClaims>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_863"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_864"
      unitRef="USD">68000</us-gaap:ExtendedProductWarrantyAccrual>
    <tomz:LoansPayableDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_658">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&gt;&lt;strong&gt;NOTE 15. LOAN PAYABLE&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 0px 0px 0in;text-indent:45px"&gt;On April 21, 2020, we received $410,700 in loan funding from the Paycheck Protection Program (the "PPP") established pursuant to the recently enacted Coronavirus Aid, Relief, and Economic Security Act of 2020 (the "CARES Act") and administered by the U.S. Small Business Administration ("SBA"). The unsecured loan (the "PPP Loan") is evidenced by a promissory note of the Company, dated April 21, 2020 (the "Note") in the principal amount of $410,700 with City National Bank (the "Bank"), the lender. &lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;Under the terms of the Note and the PPP Loan, interest accrues on the outstanding principal at the rate of 1.0% per annum. The term of the Note is two years, though it may be payable sooner in connection with an event of default under the Note. &lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;In May of 2021, the loan principal and related interest was forgiven and we recognized a gain upon debt extinguishment in our statement of operations in the amount of $414,583 for the year ended December 31, 2021.&lt;/p&gt;</tomz:LoansPayableDisclosureTextBlock>
    <tomz:ProceedsFromLoanFundingPaycheckProtectionProgram
      contextRef="AsOf2020-04-21"
      decimals="0"
      id="fid_1095"
      unitRef="USD">410700</tomz:ProceedsFromLoanFundingPaycheckProtectionProgram>
    <tomz:UnsecuredLoanPrincipalAmountOfCityNationalBank
      contextRef="AsOf2020-04-21"
      decimals="0"
      id="fid_1647"
      unitRef="USD">410700</tomz:UnsecuredLoanPrincipalAmountOfCityNationalBank>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="AsOf2020-04-21"
      decimals="INF"
      id="fid_1097"
      unitRef="Pure">0.010</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <tomz:GainsLossOnExtinguishmentOfDebt
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1096"
      unitRef="USD">414583</tomz:GainsLossOnExtinguishmentOfDebt>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_659">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"&gt;&lt;strong&gt;NOTE 16. 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;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;&lt;strong&gt;The Company&#x2019;s income tax expense (benefit) consisted of:&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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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: #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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&gt;Current:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;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;Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;(74,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;77,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;Foreign&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;(74,000&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%;white-space: nowrap;"&gt;&lt;p 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;77,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;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 0in"&gt;Deferred:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0px 0px 15px"&gt;Federal &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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"&gt;State&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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"&gt;Foreign&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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 0px 0px 0in"&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;(74,000&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;77,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 0px 0px 0in"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;&lt;strong&gt;The Company&#x2019;s net income (loss) before income tax consisted of:&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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; 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 0px 0px 0in; 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;strong&gt;December 31,&lt;/strong&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size: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;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; 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/&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 15px"&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;(&lt;span style="background-color:#ffffff"&gt;4,509,585&lt;/span&gt;&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,468,166&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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%;white-space: nowrap;"&gt;&lt;p 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 0px 0px 0in"&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;(&lt;span style="background-color:#ffffff"&gt;4,509,585&lt;/span&gt;&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,468,166&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 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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 0px 0px 0in;text-indent:45px"&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, 2021 and 2020 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&gt;&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;"&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 style="white-space: nowrap;"&gt;&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;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: #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;2020&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="width:1%;white-space: nowrap;"&gt;&lt;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;(4,509,585&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,468,166&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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;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 style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Income tax expense 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;(1,002,844&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,251,086&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,050,485&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;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%;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;876,676&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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%;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;Meals and Entertainment&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,300&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,577&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;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;(74,086&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;77,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 0px 0px 0in;text-indent:45px"&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 0px 0px 0in; 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 0px 0px 0in; 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: #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 0px 0px 0in; 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;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;109,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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;82,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;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:#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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;412,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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;290,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,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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,100,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;(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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;(3,530,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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;482,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;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0px 0px 0in"&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;(277,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;(290,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;(147,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;(192,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;(424,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;(482,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 0px 0px 15px"&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 0px 0px 0in;text-indent:45px"&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, 2021, we recorded a valuation allowance of $4,941,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 $1,411,000 during the year ended December 31, 2021, 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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;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, 2021 and 2020 of approximately $15,312,000 and $11,465,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, 2021 and 2020 of approximately $11,881,000 and $9,663,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 0px 0px 0in;text-indent:45px"&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, 2021, and 2020, the management of the Company determined there were no reportable uncertain tax positions.&lt;/p&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_704">&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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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 0px 0px 0in; 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: #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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&gt;Current:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;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;Federal&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;(74,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;77,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;Foreign&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;(74,000&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%;white-space: nowrap;"&gt;&lt;p 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;77,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;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 0in"&gt;Deferred:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0px 0px 15px"&gt;Federal &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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"&gt;State&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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"&gt;Foreign&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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 0px 0px 0in"&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;(74,000&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;77,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:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_913"
      unitRef="USD">0</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_912"
      unitRef="USD">0</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_930"
      unitRef="USD">-74000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_914"
      unitRef="USD">77000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_916"
      unitRef="USD">0</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_915"
      unitRef="USD">0</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_918"
      unitRef="USD">-74000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_917"
      unitRef="USD">77000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_921"
      unitRef="USD">0</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_920"
      unitRef="USD">0</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_923"
      unitRef="USD">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_922"
      unitRef="USD">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_925"
      unitRef="USD">0</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_924"
      unitRef="USD">0</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_927"
      unitRef="USD">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_926"
      unitRef="USD">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <tomz:ProvisionForIncomeTaxes
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_929"
      unitRef="USD">-74000</tomz:ProvisionForIncomeTaxes>
    <tomz:ProvisionForIncomeTaxes
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_928"
      unitRef="USD">77000</tomz:ProvisionForIncomeTaxes>
    <us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_705">&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 0px 0px 0in; 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 0px 0px 0in; 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;strong&gt;December 31,&lt;/strong&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size: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;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; 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/&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 15px"&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;(&lt;span style="background-color:#ffffff"&gt;4,509,585&lt;/span&gt;&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,468,166&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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%;white-space: nowrap;"&gt;&lt;p 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 0px 0px 0in"&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;(&lt;span style="background-color:#ffffff"&gt;4,509,585&lt;/span&gt;&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,468,166&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:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_931"
      unitRef="USD">4468166</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_934"
      unitRef="USD">0</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_933"
      unitRef="USD">0</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_935"
      unitRef="USD">4468166</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_706">&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&gt;&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;"&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 style="white-space: nowrap;"&gt;&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;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: #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;2020&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="width:1%;white-space: nowrap;"&gt;&lt;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;(4,509,585&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,468,166&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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;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 style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Income tax expense 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;(1,002,844&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,251,086&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,050,485&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;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%;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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"&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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;876,676&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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%;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;Meals and Entertainment&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,300&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-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&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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,577&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;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;(74,086&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;77,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:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <tomz:IncomeLossBeforeIncomeTax
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_938"
      unitRef="USD">-4509585</tomz:IncomeLossBeforeIncomeTax>
    <tomz:IncomeLossBeforeIncomeTax
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_937"
      unitRef="USD">4468166</tomz:IncomeLossBeforeIncomeTax>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="From2020-01-01to2020-12-31"
      decimals="INF"
      id="fid_939"
      unitRef="Pure">0.2800</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_940"
      unitRef="Pure">0.2800</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_942"
      unitRef="USD">-1002844</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_941"
      unitRef="USD">1251086</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_945"
      unitRef="USD">1334294</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_944"
      unitRef="USD">-2050485</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_947"
      unitRef="USD">-60646</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_946"
      unitRef="USD">0</us-gaap:IncomeTaxReconciliationPriorYearIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_949"
      unitRef="USD">5139</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_948"
      unitRef="USD">876676</us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_951"
      unitRef="USD">-116083</us-gaap:IncomeTaxReconciliationNondeductibleExpenseAmortization>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_953"
      unitRef="USD">0</us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_952"
      unitRef="USD">1300</us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_955"
      unitRef="USD">25894</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxReconciliationOtherReconcilingItems
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_954"
      unitRef="USD">-1577</us-gaap:IncomeTaxReconciliationOtherReconcilingItems>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_957"
      unitRef="USD">-74086</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2020-01-01to2020-12-31"
      decimals="0"
      id="fid_956"
      unitRef="USD">77000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_707">&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 0px 0px 0in; 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 0px 0px 0in; 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: #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 0px 0px 0in; 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;td style="white-space: nowrap;"&gt;&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 0px 0px 0in; text-align:center;"&gt;&lt;strong&gt;2020&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 0px 0px 0in"&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;109,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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;82,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;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:#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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;412,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;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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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;290,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,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;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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,100,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;(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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;(3,530,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;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;td style="width:1%;white-space: nowrap;"&gt;&lt;p 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;482,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;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="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 0px 0px 0in"&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;(277,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;(290,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;(147,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;(192,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;(424,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;(482,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 0px 0px 15px"&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="AsOf2021-12-31"
      decimals="0"
      id="fid_960"
      unitRef="USD">470000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_959"
      unitRef="USD">109000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <tomz:DeferredTaxAssetsAccruedVacation
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_962"
      unitRef="USD">81000</tomz:DeferredTaxAssetsAccruedVacation>
    <tomz:DeferredTaxAssetsAccruedVacation
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_961"
      unitRef="USD">82000</tomz:DeferredTaxAssetsAccruedVacation>
    <tomz:DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_963"
      unitRef="USD">19000</tomz:DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve>
    <tomz:DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_964"
      unitRef="USD">19000</tomz:DeferredTaxAssetsTaxDeferredExpenseWarrantyReserve>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_966"
      unitRef="USD">404000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_965"
      unitRef="USD">412000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_968"
      unitRef="USD">267000</tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities>
    <tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_967"
      unitRef="USD">290000</tomz:DeferredTaxAssetOperatingLeaseRightofuseLiabilities>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_970"
      unitRef="USD">4124000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_969"
      unitRef="USD">3100000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_972"
      unitRef="USD">4941000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_971"
      unitRef="USD">3530000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_974"
      unitRef="USD">424000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_973"
      unitRef="USD">482000</us-gaap:DeferredTaxAssetsNet>
    <tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_977"
      unitRef="USD">-277000</tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets>
    <tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_976"
      unitRef="USD">-290000</tomz:DeferredTaxLiabilityOperatingLeaseRightofuseAssets>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_979"
      unitRef="USD">147000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_978"
      unitRef="USD">192000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilities
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_981"
      unitRef="USD">424000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_980"
      unitRef="USD">482000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_983"
      unitRef="USD">0</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_982"
      unitRef="USD">0</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <tomz:NetDeferredTaxAssetsValuationAllowance
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_1650"
      unitRef="USD">4941000</tomz:NetDeferredTaxAssetsValuationAllowance>
    <tomz:NetDeferredTaxAssetsIncreasedValuationAllowance
      contextRef="From2021-01-01to2021-12-31"
      decimals="0"
      id="fid_1649"
      unitRef="USD">1411000</tomz:NetDeferredTaxAssetsIncreasedValuationAllowance>
    <us-gaap:OperatingLossCarryforwards
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_1098"
      unitRef="USD">15312000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_1099"
      unitRef="USD">11465000</us-gaap:OperatingLossCarryforwards>
    <tomz:StateNetOperatingLossCarryforwards
      contextRef="AsOf2021-12-31"
      decimals="0"
      id="fid_1100"
      unitRef="USD">11881000</tomz:StateNetOperatingLossCarryforwards>
    <tomz:StateNetOperatingLossCarryforwards
      contextRef="AsOf2020-12-31"
      decimals="0"
      id="fid_1101"
      unitRef="USD">9663000</tomz:StateNetOperatingLossCarryforwards>
    <us-gaap:ConcentrationRiskDisclosureTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_660">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 17. CUSTOMER CONCENTRATION&lt;/strong&gt;&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 0px 0px 0in;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-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;As of December 31, 2020, three customers accounted for 36% of our gross accounts receivable.&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 0px 0px 0in;text-indent:45px"&gt;For the years ended December 31, 2021 and 2020, we had no customers who represented 10% or more of revenue.&lt;/p&gt;</us-gaap:ConcentrationRiskDisclosureTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-01to2021-12-31_tomz_OneCustomerMember"
      decimals="INF"
      id="fid_1102"
      unitRef="Pure">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-01to2021-12-31_tomz_ThreeCustomersMember"
      decimals="INF"
      id="fid_1103"
      unitRef="Pure">0.42</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-01to2021-12-31_tomz_TwoCustomerMember"
      decimals="INF"
      id="fid_1104"
      unitRef="Pure">0.36</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="From2021-01-01to2021-12-31"
      decimals="INF"
      id="fid_1102-2b2ea0"
      unitRef="Pure">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:SubsequentEventsTextBlock contextRef="From2021-01-01to2021-12-31" id="fid_661">&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;NOTE 18. SUBSEQUENT EVENTS&lt;/strong&gt;&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 0px 0px 0in;text-indent:45px"&gt;Pursuant to the agreement with our Board of Directors, in January 2022, we issued an aggregate of 51,750 shares of common stock valued at approximately $54,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;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in;text-indent:45px"&gt;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 $190,239 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, 151%; expected dividend yield, 0%; risk free interest rate, 1.75%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $1.10.&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 0px 0px 0in;text-indent:45px"&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 $63,413 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, 151%; expected dividend yield, 0%; risk free interest rate, 1.75%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $1.10.&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 0px 0px 0in;text-indent:45px"&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 $44,113 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, 151%; expected dividend yield, 0%; risk free interest rate, 1.75%; and a life of 10 years. The grant date fair value of each share of common stock underlying the warrant was $1.10.&lt;/p&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:ConversionOfStockSharesIssued1
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_BoardOfDirectorsChairmanMember"
      decimals="0"
      id="fid_1106"
      unitRef="Shares">51750</us-gaap:ConversionOfStockSharesIssued1>
    <us-gaap:ConversionOfStockAmountIssued1
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_BoardOfDirectorsChairmanMember"
      decimals="0"
      id="fid_1108"
      unitRef="USD">54000</us-gaap:ConversionOfStockAmountIssued1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember"
      decimals="0"
      id="fid_1109"
      unitRef="Shares">172500</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember"
      decimals="INF"
      id="fid_1111"
      unitRef="USDPShares">1.12</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <tomz:StockOptionValued
      contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember"
      decimals="0"
      id="fid_1113"
      unitRef="USD">190239</tomz:StockOptionValued>
    <tomz:StockOptionTerm
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember"
      id="fid_1115">P10Y</tomz:StockOptionTerm>
    <tomz:Volatility
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember"
      decimals="INF"
      id="fid_1119"
      unitRef="Pure">1.51</tomz:Volatility>
    <tomz:ExpectedDividendYield
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember"
      decimals="INF"
      id="fid_1120"
      unitRef="Pure">0</tomz:ExpectedDividendYield>
    <tomz:RiskFreeInterestRate
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember"
      decimals="INF"
      id="fid_1121"
      unitRef="Pure">0.0175</tomz:RiskFreeInterestRate>
    <tomz:GrantDateFairValuePerShareOfCommonStock
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember"
      decimals="INF"
      id="fid_1651"
      unitRef="USDPShares">1.10</tomz:GrantDateFairValuePerShareOfCommonStock>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember"
      decimals="0"
      id="fid_1129"
      unitRef="Shares">57500</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember"
      decimals="INF"
      id="fid_1122"
      unitRef="USDPShares">1.12</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <tomz:StockOptionValued
      contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember"
      decimals="0"
      id="fid_1124"
      unitRef="USD">63413</tomz:StockOptionValued>
    <tomz:StockOptionTerm
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember"
      id="fid_1130">P10Y</tomz:StockOptionTerm>
    <tomz:Volatility
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember"
      decimals="INF"
      id="fid_1131"
      unitRef="Pure">1.51</tomz:Volatility>
    <tomz:ExpectedDividendYield
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember"
      decimals="INF"
      id="fid_1132"
      unitRef="Pure">0</tomz:ExpectedDividendYield>
    <tomz:RiskFreeInterestRate
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember"
      decimals="INF"
      id="fid_1133"
      unitRef="Pure">0.0175</tomz:RiskFreeInterestRate>
    <tomz:GrantDateFairValuePerShareOfCommonStock
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefOperatingOfficerMember"
      decimals="INF"
      id="fid_1652"
      unitRef="USDPShares">1.10</tomz:GrantDateFairValuePerShareOfCommonStock>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"
      decimals="0"
      id="fid_1141"
      unitRef="Shares">40000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"
      decimals="INF"
      id="fid_1134"
      unitRef="USDPShares">1.12</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <tomz:StockOptionValued
      contextRef="AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"
      decimals="0"
      id="fid_1136"
      unitRef="USD">44113</tomz:StockOptionValued>
    <tomz:StockOptionTerm
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"
      id="fid_1142">P10Y</tomz:StockOptionTerm>
    <tomz:Volatility
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"
      decimals="INF"
      id="fid_1143"
      unitRef="Pure">1.51</tomz:Volatility>
    <tomz:ExpectedDividendYield
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"
      decimals="INF"
      id="fid_1144"
      unitRef="Pure">0</tomz:ExpectedDividendYield>
    <tomz:RiskFreeInterestRate
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"
      decimals="INF"
      id="fid_1145"
      unitRef="Pure">0.0175</tomz:RiskFreeInterestRate>
    <tomz:GrantDateFairValuePerShareOfCommonStock
      contextRef="From2022-01-01to2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"
      decimals="INF"
      id="fid_1654"
      unitRef="USDPShares">1.10</tomz:GrantDateFairValuePerShareOfCommonStock>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>97
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
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,$%     @
M,XM]5"-#K[P&!@  /AD  !@   !X;"]W;W)K<VAE971S+W-H965T,2YX;6RE
MF5USVC@4AJ^[OT+#]&)W)@1+A@"=)#,$DBYM0MB0MM/N[(6P%?#$EEA)#LF_
MWR,;;-HQQY[97 1_G9?71]*C(W&^5?K9K(6PY#6)I;EHK:W=?.AT3+ 6"3>G
M:B,DW'E2.N$63O6J8S9:\# +2N(.\[RS3L(CV;H\SZ[-]>6Y2FT<23'7Q*1)
MPO7;E8C5]J)%6_L+#]%J;=V%SN7YAJ_$0M@OF[F&LTZA$D:)D"92DFCQ=-$:
MT0\3?^ "LB>^1F)K#HZ)>Y6E4L_N9!I>M#SG2,0BL$Z"P\>+&(LX=DK@X]^=
M:*OX3A=X>+Q7O\E>'EYFR8T8J_A;%-KU16O0(J%XXFEL']3V3[%[H9[3"U1L
MLO]DFS_;]5HD2(U5R2X8'"21S#_YZRX1AP'T2 #;!;!? FCW2("_"_";!G1W
M =TL,_FK9'F8<,LOS[7:$NV>!C5WD"4SBX;7CZ1K]X75<#>".'LY5B]"DS;Y
MLIB0W]__<=ZQ(.IN=8*=P%4NP(X(4$;NE+1K0ZYE*,*?!3K@IK#$]I:N&*HX
M$<$I\>D)81ZC%8;&>/@=UZ>$=K-P5A$^P<,_I1*^W:OZ]I_>QB\2[&=Z/IK@
MOT=+8S5T\G\0R6XAV<TDNT<DKZ6-[!MY$*O(B4I+9CP154V'ZSS>WTW)]>SK
M].%^=G<]>QS=DL7][9?'Z?UL<4*FL_$I8K97F.TU,3L6$JS&9 J=Y)5\%F]5
M=G$E#_Y\VF6LC]@Z*VR=H6(3%:2 +TL>WS:5J</#J=?^C+CH%R[ZJ,P(+(29
MC9N8KZILX/%//#8"\3$H? R:--)7%:?2 O[)310+;:H,X4(SA;@9%FZ&J,@X
MU3K+260"Z#+?!=<.+@0 5]E4N%J[35G;QX8R]4I8>DWR] VF*?)9JJTD"\&-
MDB(D4V-2H2OYB6NB*:,''*=-K"T2#MZN4@.W364#UNA8G6(]BK+2$&MD:.V2
M-5;)ALO*05\C4]?%:0EBZC<Q=)T(O8KDBGP$!;M&K>&"M=9*H--&1-]W_ >Q
M4=HZCPO+;5K=C+CB=V$P9R6]*0[=@I-SH2,5HN.P3FHWK__V[EW-W$I+BE.<
MP[O$9;@B8_"U4KJZ*7&=F9)M'@10CFH0"7-!S&%)>(HCNDC@CF:[/-[ Y>IV
MQ>5NOF.N2MY3G-._NLH8>]P3+E;7FB7W*8[J_3!020)+@H55P3/P@VMAR'UJ
MC>4RA$%151+NA'N9L%OKO%S28=]G?:]WWGFI*D9+YK-&S)^GRS@*8)Y6W%96
ME;G*V8$#-NR?^4//.^*@1#O#D5PTUDC*%!HKQT-50]4(U;"=E6QG.)3+Z@G*
M3Q-E*SC$U?\C/"L)SQH1W@U>,DN39?5\7","56;;&PZ] 6:I)#MK1/:I#)2&
M_/ L58[J KHY%%O:=?>P$J<URC>WF,$2\*Q1??[(7\DTA":-GJ(@=XED$)?L
M#=MTV.T/!V@*2\:S1HP?A2& P!2?M_ 8J5H?7M7H#;J^1Q:;R&'E&W_#/):4
M9SB6?_$X=B?WFCQ"B5CIL ;R6H0P303/F+>2]:Q1<;_WEG<^,#?7ZB62077?
MPR7O)IBSDO>L$>_WSN8*$!^3']'F^)C !1GM>^BBO:2^CU,_:\&1%ORHE1J!
M@>/^<2,E_'V<V:,TC*S21Y?X->$/R@@)PWA%'J)@3:[X,Q1*5T(G7)Z0^>D(
M6^+[Y7S@XPC?F[Q5.3LJC>(2"P5UN1'VA,S$EGQRQ]C0] _V7W">[[W=1#H!
MQ%5:PQ4&0\Q(.17X.+!=<J#^6\-R$6%KC4B/]=KT;(B1U2_9[^.@7H@@U:ZC
M4[8DCY&-JWL8+G)8K9V0#=21+SQ.!7GOG7H>)1OH;\;5<)CC<B[P<79#O1%F
MZZ*W9*GB2K<U O=W/S G)?%]G-%%[JY?@S67*W%\A.)"L]%B,OH+\U22WF]$
M^JFT0N<;ZFZMQO?KRDISN.*1963G8,/9+:>SC7M# E?1Y'O/Q=7BQX%1MB7>
M*1_/?UFXXVXU;D@LGB#4.^U#;]/Y9GU^8M4FV[Y>*FM5DAVN!8?YT3T ]Y^4
MLOL3]P7%3R:7_P%02P,$%     @ ,XM]5,^<5V/S!@  .QT  !@   !X;"]W
M;W)K<VAE971S+W-H965T,BYX;6S=6=MNVS@0_17"*+!=P(EY$2]JDP"NDT4#
M9!.C3KO/BDW'0F7)E6BGV:_?T266(U*,"_1I'Q+K,B3/#&?FS%!G3UG^O5AI
M;=#/=9(6YX.5,9L/HU$Q7^EU5)QF&YW"FV66KR,#M_GCJ-CD.EI4@];)B&(L
M1NLH3@<79]6S:7YQEFU-$J=ZFJ-BNUY'^?,GG61/YP,R>'GP)7Y<F?+!Z.)L
M$SWJF39?-],<[D;[61;Q6J=%G*4HU\OSP9A\F 2X'%!)?(OU4W%PC4I5'K+L
M>WESO3@?X!*13O3<E%-$\+/3$YTDY4R XT<SZ6"_9CGP\/IE]K\JY4&9AZC0
MDRSY)UZ8U?E #=!"+Z-M8KYD3Y]UHQ OYYMG25']1T^-+!Z@^;8PV;H9# C6
M<5K_1C\;0QP,($'/ -H,H,<.8,T 5BE:(ZO4NHQ,='&69T\H+Z5AMO*BLDTU
M&K2)TW(;9R:'MS&,,Q>3N]O+J]O9U26"J]G=S?7E^!YN/HUOQK>3*S3[?'5U
M/T,GZ.OL$KU_]^?9R,"BY=#1O%G@4[T [5G@4L]/$2-#1#$ECN&3XX?CU\-'
MH.I>7[K7EU;SL3Y]MWFN4X/&1:%-\<$S(]O/R*H9@[X9HV*%HG2!JHNK']MX
M%R6P1.&R53V5J*8J(VQWP1F10<#.1KM#HSCD2*A40/=RK[ &>ZR!%^MX/L^V
M  U]T7,-.!\2#7N;:N/"6D_%#S"04 12B@Y66XY)(B0F;JQ\CY5[L=Z9E<X/
M@#KMR:VU*>,A#CH0;3&P9LA[$(H]0N%%>)WN8)^S/-8%>G^;&8V8,T"$M7H@
M T85[J"TY9A4A!/NABGW,*47YC>=+K(<7>I-5L3F!6K@A"IM>RK%57?+;3&F
ME"0]WJGV0)47Z#37FRA>H*N?0%*%>\.5O7+ N.S&CRT64,)PCR7#/<#0"_ ^
M,U&"7J<0%\C0=C>J0L8%[<!T"#*)!:;2#93@-JWC-VP)3)^;YRHSE4EILRXQ
M5\'>> !W9W-L8PJ48B3L8'<)TE 1S'JP'U 2\>;H.O+?SM"D3?J$OA&I)DH?
MXS+=U=.^,H1P&X):^H6P@ZJ;6QQRDM*0B!XSM+Q"_,1R!QL8F3A]1#<:"A6
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
M).\C\$.-Y -V;^_QVY-P+*3,/^]*L/,_;=ZI%W$L)!&A%_[QJ^/6+\16).3
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
MN;U1<E6_-WN22LFLOEQREO"B L#_"PFGE.:F>A6W>QL\^A]02P,$%     @
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
MDD%A?79K)(#+T@H?3YZ-P@"#_:#8BJ$2QR89O5;8"4LGPHGZ'AJ$X?*J&[?
M>9ZQWGD G9"3:3W(\MK)FH>_]A'#4D%HC/5T>\>8,,<)WC3$*&8E@&C'#A-K
M<P.C11B&F&P$PT6\20A_^76')> 1VM@UX!G(A?_*.],/%$5;IF2IJKH)#@WV
M?X)5\S<" +/"_NEC'@PNXT3*P/STXDN4%+)UNC>"+#M"O@7GIYSX$@2K9_([
M<]BO*YNV6"K9;/*J(BKN7;8(/JS]-B>CY (?QBE^;[#/Q,SJWA!O;!,[><)"
M%6#02PH?<S-NG?7S" PA:), T.1>EWTF)JCSBL3OZ3 ]'YREY^<#_O[IR<DH
M'8PN4DC<TK"+*]8]H] ?://;0;K!B]WRZJ:^N$P'@X',?#7 Y\V9;S4J@L&+
M/V,#V+2S766@4Y%E$EXWC#]+<F6Z_=@R<01=(Q&9@J@C6Z;Z"9C_X,WMF_>'
MM&UD)_+^Y+P!#<-C<I.V6&MD9ILYT3"KJEPDL\Y6/I:4P,=M#^C2,%G-!"Q:
MR%MP3J%A'97A*-)%  VG@N1"SJ.IUOEH455F(RYUXL(F0[7$ 2+62JL9&=&F
M,4U% !6QETY">"7O:RMVTEF5W!D-TFM!K)A$&#"Q]:1; ,$(?(HU4B![!_!E
M(]Y"%8&I&(^*L8'?$*LG,PN)K8D6SD(TP(J(8X\6S[YX?8A#X=<N% 8+G)E@
M^[TS8(;@\8;!Z^+Y;M%)B$\.ESAH-?WSQ7 ^J6M-[X=(% ET9,A('R%/J-*7
M0/4EV/-,WPSO ^Q*$XK *900Q A00-(T!11G8W!,G(AFYJV,XOZN+@F+U(*I
MIO8;/LMFWAN* 0H6_\7"\(Y6$(9ED4TD1<..2<7#,@)JQ?(0L4"D9-;GD&.[
M("[>NR1-S1Z)A.%/?O)QC.BM.^PC\3^#+ (Z*S&])^.9-:@Q&)*L*N- 4RN=
MC1-] KI_P@'73$LU/0)T//CO_[H<C08O/K[_S)^&+PXUUN4\  :(0EZ.O<D#
M*&T,XN ,F2I:N9$ 9SA2])9*] 2U8VWC%Z[O;I++TQ&+$$'% E1Y^'K$ 8',
MJT3SYIIO1K(DG@:ADK./ CJ@ABZ7495'8CE4X/&QHPVLP^R?YL0J=F6I^AB
M*%T9Z_4?'9G9Z9I1$V)AUN; 26)9'![T6,5!PL= ?]H+^"5=%9*IH-J#?8G:
M.5&PD0+..,QFL,VQC29,:6D\.3DT/ "]-8:)CKGK<TAK#SFA4@V+,07Q;-L9
M-RB\P;@2*U>:GG)LH+VH)Q83ONEJ0!;L?,I\%RXX="KY"P>!D)#XEM2<(V-!
MP"2+;D'L*#L.'B8U<S_DEI5)T%[$KGY8!$G *MFR99BO"9%IQ_KNQMT@AO =
MC+28K]O^0O$V<K1L'&NV[!5TG1/%[CU]SA'EX\3^/,)Y7G-7RZ*TF#!&M(Q<
M@\S0RXW84LJ;O,_W&47R#,B0E!+V<Y9H<W\>04X$O8NF2K@8:127U8B)79(R
MMT9B8$AY(SEUU0=F>$DZ)7_![E<E\W2G,K*P,WWXR3EMA0-0+*0HL:.I9#>.
M-#< >RM?LYB-HPW>4.^=="C"3:24O.QJB@\Y?QD+*2A" I;9ZT5# UP6)%WQ
MK#;&A:I"3,CA$S5^#'G<H2%&#@'9_.K<5[KYPFX5(9PP,YJ 7BP@"J01@JP,
MJ[U3#?^Z(\ZOX#NT>?.5(Q6PM"V0)+UV5TW;%6AYA6Q+)5#@AK'=[6X3?G5Y
M=D1XNS:SK,Z]#D5O(]GN1I5H ] O%:ID[R4UPSL>Z&1$)[!2$L-K9I+C:@)S
MCL319%Y6135C 9[2F%:=U)S>DDB$A&I<,)1-695@-CB*T:2C1=)?8F>93FR*
M9XK.Q*I2Y=V$)3=H)X1. 0KJ(,QLP%T7ATN:*,39&P&-0@7O >*9/>-BA@J1
M6SO.M2Q!V$U6<$4H'CF>=ERU\Q\(IE)!HZ?#]&HPB#(A'S19=;T;I*:<Q"5
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
MH:ZD,: 1R=B6*R]RX"T$(>-*@@R4NG==UQ;_VI/2N-A.J#7GOK&)% ZBC8%
M^0;2W:N0;.FB0Y<R/>VZ\'OM8\^3[' #!.\9K!^2NP&TWX*KVA X$:!L7-U+
M"<FM4PC>-S1G]-Q"V0A(%]J^Y[<V?WRX1X[ZE#G21%HFA]H907\<9455&FYN
M%\?O&B]D@W;2X;;#QH9;!<;75T3,'638H@]M'D+<O=)&1@%&1%*QMOG*U53
MT="&LLR:9E\:>"ZM)Y*'OHD,G,0[2""3,'!6FD29JZ:TF5GAVONQ#0RP4!]8
MS4/GLK;^;Z3CI9E(?4;#SBPZML(DD8=";EHS2S(79T'"3))27FF-N*S0-\,"
M$&]Z=,IGC/P21Q5\GD1F.":_;I=+E]-%>W A!YM0&(A:"@/+M*3G?>\'38FK
M/]+B610_A6[H6M)2K50[IUTQI8 HJI"Y='$\_(U65L+P[A,_Z@]K(0)Q!1@Y
M$.2Z'%TD=!/*>Z]LD\UFJ( Z*7/>M(]E!3$KWFQX&VLW>Q[&D$2AV]*&'D/!
MUS$&J[I3X^2F 6[]]!!NO1%'&.#K4P(%),IOT?3G1GZ:G*?#BRO..CU-1J/T
MZF*H?QP0 +VX&O%?AWYZD/*ISJ0'89B>79SQ _0804"N-IQ>NG<^56A]>)I<
M$#X\=5/0\Z-+/\5%.KHXU<?=RH@1OYIJ5F=+<O?T[0P,_BO+_4S>G)$M9X:Q
MU-/!B4Y-H/7D_,+3,4ROSAT=M[UV[&%Z<B8L.4_/S^73P5EZ,AS\M55^\/4?
M!_DTERIR)V:XJ\4^9K6D*$1W.*4=M;DU>D+5G1P@#R?MA]QG*6WV7=08%X!H
M/TO.]L*#-XXIR9Y6A>11U4DZX_,O(+@><--#77M 6S!UL>"U3O VF+?)NSD!
M]B,^<D2&#XO)O,\4@RI#FG)&<%X[=^XS?_I8JY]17R3F=DT'ZVA'X&*5ID!I
MO9/)>M"-FTN4Y1Z\B!DJI1MZR\/\IW@<\/"-*^*^'TNWOX\&'%1UEH]KF\ME
M@?K6GAZB?G=PU.VKJ%JGJMQ4DXVI/&=]Z:[7+:&EC:UD8*D5>']HA"@-OMLW
MF&2N]],V4BOHM>WX8S5_?5IIT@E-)5+L#L#481WGTXX#KU^Z/OT?*P%CSW.;
M,PJ0;J]R30A,\#90TCX\A_U G+(1Z?#)1CV=XVN-!2D+[,ET:\EZ:+ W#D;V
MP=IV:)#%QZ5[@1W3SSV+B+DE97Q?.508T+ZL"(6M:^0%9KY?BVA\VQ4M[A5
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
MWB:4-L&<ET+HDV,O&%^[[#=02P,$%     @ ,XM]5&_1W*PR @  XP0  !D
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
M-FHQDZVIN,"- MW6-5,O*ZSD:>Y%WH7QF1]+8QG!8M:P(V[1_-%L%)V"'N7
M:Q2:2P$*B[FWC*:KH;WO+OS)\:2O:+"1[*7\:@_KP]P+K4-886XL J//$W[
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
MGDW3@9_A^P>K&O=QL%06GQINN<&]2VH6P#[?)O</;*#_6KS\#U!+ P04
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
MIX)#U( =H'TB9=O?X 3VD_OG_P502P,$%     @ ,XM]5"?P6"7,!   HPH
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
MN*JI,UX_1X1^W'5$3;J@$UT27> &+;%01BTUN@>0+88!H055"D_IF^15RBU
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
M0_R4@UGQ)PNM=^#STA@Z+#S!^!%<_0102P,$%     @ ,XM]5!8UR"+3 P
M_P<  !D   !X;"]W;W)K<VAE971S+W-H965T,C$N>&ULE57;;N,V$/V5@= %
M-H AR9<TP<(V('M==(%<C'C3HH^T-):(\**25!SUZSND9-5>-"GZ8I/4S)ES
M9H;#^5&;%ULA.GB30ME%5#E7?TD2FU<HF8UUC8J^'+21S-'6E(FM#;(B.$F1
M3-+TYT0RKJ+E/)QMS7*N&R>XPJT!VTC)3+M"H8^+:!R=#IYX63E_D"SG-2MQ
MA^ZYWAK:)0-*P24JR[4"@X=%E(V_K&;>/AC\QO%HS];@E>RU?O&;;\4B2CTA
M%)@[C\#H[Q77*(0'(AI_]IC1$-([GJ]/Z+\$[:1ESRRNM?B=%ZY:1+<1%'A@
MC7!/^O@K]GJN/5ZNA0V_<.QLQS<1Y(UU6O;.Q$!RU?VSMSX/9PZWZ3L.D]YA
M$GAW@0++K\RQY=SH(QAO36A^$:0&;R+'E2_*SAGZRLG/+>\>LP?89G]DJ[O-
M/'&$Z,^3O/=>==Z3=[S'$[C7RE46-JK XA(@(2H#G\F)SVKR(>)7S&.8CD<P
M22?C#_"F@[YIP)O^;WT7<+,!;A;@9N\)OH[AOU+V,<+#X_<-_ @#CPJRVG !
MDTYZ.H(C4M/G2#U;P$^S<3JZ25/@"H1F"@Z-*K@JX6"T!%<A;%E+]S5_@:W1
MKN]X6I:&2?CL#:+M=AM= 5K']H)3PQ10-\8V3#EP.F#X<,J)%E#192&#M39:
ML5=N&@L9+T;PA(+C801,%;#)M=*2Y[##O#'<M9#E#O0AT.]CKK.GS<Z?4V3O
MPPIJ86X=&D+?MR'J<[R+82>9$+!J+&7+4K#>SK @Y'.T6V7150S?R;Y1U@<D
M@)")01S<T9;B< OXR@M4>1>#04U)XM9JTX*BY'B.WFFM9<U4.X*">;&7^>]Q
M'\C>8ZK@018JYS43P*1N5% [E.;(705KGX>'P)JL5DR]]$!^&5V- HQ NBPF
MAF?_%TXH(=*>>/F8(5NAKKVP$7'P:;..!EEN&B3SCA1-6JIIUPYG!%U74M;I
M'<?I)Z@I&E.JD5TB?="+F)0Y=]30(C/6,]5-60%W-&Y:V)-ZUE+K(%BM%2%1
M3J@#5-]K03V5 U^QRTL_&:E<)Y$^1@S?%-P37M<GXSXAOI!GW$F[01&J,J@^
M,@OT!I5T'U2PZ.Z'+A7_B^P8E/0"05,3EP+W#O#-448:ZG3I&=$WW=!CY A5
M]A3I9>L:S)X*?%'6V>CZ=NICAD\^*^ +5P#-*)1[4G6:4_&_39;D;"A+-&5X
M>BSEC")T\WDX'5ZWK!OJ_YAW3^,](]W$4N"!7-/XYCH"TSTWW<;I.HSXO7;T
M8(1E12\T&F] WP^:<M]O?(#AS5_^#5!+ P04    "  SBWU4?+TD9^P)  !Q
M&0  &0   'AL+W=O<FMS:&5E=',O<VAE970R,BYX;6RM66MSV[H1_2L8-^G8
M,Y0L4D_G->,X;IM.$F?B/-J/$ E9F)"$+@!:UOWU/;L *<FV?-/;3B8620'[
M.+M[=D&]6AO[TRV5\N*N*FOW^FCI_>K%Z:G+EZJ2KF]6JL8W"V,KZ7%K;T[=
MRBI9\*:J/,T&@\EI)75]].85/_MLW[PRC2]UK3Y;X9JJDG;S5I5F_?HH/6H?
M?-$W2T\/3M^\6LD;=:W\M]5GB[O33DJA*U4[;6IAU>+UT7GZXNV(UO."[UJM
MW<ZU($_FQORDF_?%ZZ,!&:1*E7N2(/%QJRY469(@F/%;E'G4J:2-N]>M]+^Q
M[_!E+IVZ,.4/7?CEZZ/9D2C40C:E_V+6_U#1GS')RTWI^*]8A[7I]$CDC?.F
MBIMA0:7K\"GO(@X[&V:# QNRN"%CNX,BMO*=]/+-*VO6PM)J2*,+=I5WPSA=
M4U"NO<6W&OO\F_>?+JX^7HJOY_^ZO'YUZB&1GI_F<??;L#L[L#O-Q$=3^Z43
MEW6ABGT!IS"ELR=K[7F;/2GQG<K[8I@F(AMDZ1/RAIU_0Y8W_*_]VQ,WZL2-
M6-SHD,.3OO@CR)Z6\.GJZZ6X+T9\72IQ8:J5K#=__<LL2Z<OG=!U;BHEO+P3
MZ@Y%Z)0XGJM:+;0_$;E!73BO"F$6+P025'B(^+>2-H1" $A5S95E,/=N"%GZ
M,Q 7C;6J]MBO"F5E*9Z)'O^_]M)#VW24# 8#<2*F4[Z &F1YC06]AU^^4PL%
M<<566J^31%>[F^G?5^-9XU;0LU;48VC4(*B(R'%IG#L1<P5.4KLP_5] ^59K
MDL"&.[)/C)+QX"P9S\9LXR@9369).IGL>=1Y<W#U56,?"VFA%\ -"A?65&RO
MK$Q3>P=OJE5#ILPW0JY6Y4;7-[Q@WT*'C\8;N\$&NS*6\-[1P_>+",7"E&!A
MD@,"=T#KA;BJMT!D&0&13A->3%?B*T1<-+!&UH7XIYD[<9Y[<4QAR08OZ5O<
M\UWZ\D2LI1.J!M/"/%U[(TJY!EO])(T.4.F%SF7M1;Z4]0ULQPK2]+[VRM;
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
MS*_=ZL5,M59PB;<:3%O73.^6*%0W#Y+@L/"9EY5U"]%BUK 2UVCOFUM-LVA
MR7F-TG E06,Q#]XEE\N)L_<&7SAVYF@,3LF#4ALW^9#/@]@10H&9=0B,/H]X
MA4(X(*+QUQXS&(YTCL?C _I[KYVT/#"#5TI\Y;FMYL%% #D6K!7VL^I^Q[V>
MJ</+E##^%[K>-DT#R%IC5;UW)@8UE_V7;?=Q.'*XB)]P2/<.J>?='^197C/+
M%C.M.M#.FM#<P$OUWD2.2Y>4M=6TR\G/+M;WR_7JS_O5ISM8?:'?]2RR!.LV
MHVP/L>PATB<@DA0^*FDK RN98WX*$!&?@51Z(+5,GT6\QFP$XR2$-$Z39_#&
M@\BQQQO_-Y$GF),!<^(Q)T^IOAC!BX+W/,RGF[L5_! +;EMM6B8M6 6V0F"E
M1J3[8*E$; 6JU;!43.>@"KCFFLI<:1,"E_ 'DRW=,!>^-(0.@1O38@Z,;D%)
M*"6SZ+RF27@^C<%43*-Q"YFJ:[HJ5'79!AZ9\$X66--HM>5T!U#LX&PZ">,X
M=K0X)9R>A]R1R@\4')#CZ\F-X.Z8NOF>.P$_\AR!GI=>I"3JPA-F,O,LO]%S
M;L<41_#A5.RI5M7XBT\\FU9G%=U=2,[3<!H_*9E,W1E7%<<"5EO,6O=FP$U1
M\ RU#X4$W*+..($UFO<,SY(178*&+#RN.V[(G'.H&Z%V/G-#(/JX[!EVS!Q%
M^RQY&X?I^"VYYD"L@8%%7;N#DAAVR+09P5<$XB;XW^3C@RU8MOEUG55*D*Y:
MY2C<Z07CNH?V5AW3VO&B3"$)R^%A]ZQ@GRSG6"A!SS>7)3 *;^UIFTMX5((Y
M%G870C)-?OF-@M-0%1!RSEU>2<&.H\A#B&E3<[.!@B) A4.2T! 3JBGR'9U/
M:=\)9B!X@:=B7:A*3SQWE7LDBLR09=4^[M^GLZ7*U&+G:!^K=^%V*8O_??U,
MSU]</C=4#Q0<.ON5R^?-.)PDXY_5\_^KGDGL'\Z75,][+NG]X_04OG+U3"9A
M\K-Z7J%Z?M2#1$>-7(VZ].VJ(>!6VKZG&U:'COA=WPA^,^_;Z8],EUP:$%B0
M:TPB XJ!;U'[B56-;PL?E*4FTP\KZNI1.P/:+Y2RAXD[8/B?L/@'4$L#!!0
M   ( #.+?534QN+VMB(  "QO   9    >&PO=V]R:W-H965T<R]S:&5E=#(U
M+GAM;-T]:7/;1I9_!>7U;$E5D$Q2H@X[294LVUEMQ<=:]J3V(P@TR1Z# (-#
M-//K]YW=#1*$Y,S,E_V2T"3P^O7K=Q^MGS9E]:U>&M-$WU=Y4?_\;-DTZY<O
M7M3ITJR2^K1<FP)^F9?5*FG@G]7B1;VN3)+12ZO\Q60TNGBQ2FSQ[)>?Z+M/
MU2\_E6V3V\)\JJ*Z7:V2:OO:Y.7FYV?C9_K%9[M8-OC%BU]^6B<+<V^:K^M/
M%?SKA8.2V94I:EL6467F/S^[&;]\/9GB"_3$WZW9U,'G"+<R*\MO^(^[[.=G
M(\3(Y"9M$$0"_WLPMR;/$1+@\8< ?>;6Q!?#SPK]'6T>-C-+:G-;YK_;K%G^
M_.SJ6929>=+FS>=R\U]&-D0(IF5>TW^C#3\[G3Z+TK9NRI6\#!BL;,'_3[X+
M(8(7KD8'7IC("Q/"FQ<B+-\D3?++3U6YB2I\&J#A!]HJO0W(V0)/Y;ZIX%<+
M[S6_W']]__[F\_]&']]%]W>_?KA[=W=[\^%+='-[^_'KAR]W'WZ-/GW\[>[V
M[NU]=/2IS&UJ37W\TXL&ED8 +U)9YC4O,SFPS'@2O2^+9EE';XO,9%T +P!G
MA_A$$7\]&83XQJ2GT=DXCB:CR7@ WIDCQ!G!._NG"3&PV+E;[)P6.S^PV*?*
M%JE=YZ:.RGET6Q8UD#9+D$_[:#L,[,O2 '.GY6J=%%M;+*+4P3-9-+=% FLE
M>50W\ 4(5%-'L'K>9B9JY-46OP1,OGQ\?Q<E1199^/=F6>;Y-BHW!8"IVUEM
M,PN"&_-3;XL'6Y4%P@/8]V7>(O9U'-T5Z6D<)=$'\Y!D"2!3K<N*MG8:W>0Y
MK-V82K#UB^.B3944=4+26D?+Y,%$,V.*R.06&)\V8XM@<PAQX"RF[BRF@^3[
M;-(\J6L[MRG!1#K<"%I]AS$,[=94#>A"4%A=J.&&5@F2OHS6E2VKDZU)JHCH
M@52"9WI/#!Z'G:,6QH]X;FE;5?!31.^#1J[Q))C,P!&UZ44ABXH2UH<30/AF
M/@?E&,&>X?T'6[8UG'=EX+R0V  25!OQ!1B!2F"458#@NJSM8^=PX<[A8I!R
M7P%E6.IMW5A$L)?VPQ!0$& C3$@^2"+4$\1!B6N;+2C@9AE]/;T_C7Z]N?D$
M9/BCM4"+J*536"7?3&042>);('*[6C-YFF721 G3E:1KQ?SMJ(HO9+9.\[)F
MAFY^7'Q)6'9?*TK !T0L;5IX6@\/^#C'!0&CRAT\G/*\*E<(HPXV<QI]!#,)
M="L6)4($:V=!H#?PR$.2M_!(5+:5?SX6/8+/-LN26"XGK(%.3K*!#8U]2&:Y
MP><?8 ,E*I%Y8JL(P;(.]/NT1=U4+6T47VB28F'A9:2RP:_:VLS;/,I!5.C-
MO4>(/.L*>19.$_^!)[A&B'O+@GU-OYV@68>3V215QILJ5R"@R7?<(KX/)]+
M)E':<IO,; Y,3[^M@%11"62L@'B_&_(/NC1"X5I:6*8"*02)^PY865.DA@##
MCP])A8+'4'I8J4*ED5OSP&2=(9&3NBR8H,@%@9QNEC9=1JPEEH8/$/^)7(NG
M](\V6P@+S<!%8_%(JHH8R%,%=Q#0,MCSD*!?.D&_'!33=W@$?\?%HO>PE;9B
MKNZ3]V% 9/A:X+S*-JPZ%RV(#1(7]^R/.EH%ZZ#/!H#J\/>D)E*8[^D2> FU
MB$T-'\"&!(C(CGR,(@FP04J(0*@.UXFEHR'SA6*6.(IMHR-XTGRW#8,\5H%?
MLP, ' $ \(M56<-A9P\)<//"($. D_P-%IC+ VXY#]NRM%:9J4"B ^L)Z#8;
MMC0$ S1B8W$Y,O.,04"2"%7-:?2^YV%BOW8+_$V< -YTCI_W=B$+.98]LKC5
MS$#PD)'<'5GXYEM1;G*3+0PS+WP'7^)G1S[ GT7NR#X<@R;.<U(N_E<R;OZ<
M,U.GE9VA(@[/<VG!7E7I<ANQ:,N><Y"B7)3&ND5EXF0&?Y[;"@ZAV92T!53#
M%DB+K\]J4Y$*<ZH7+&L3M87_)>;-KY(M,DM;L[@*E0/<8ED0EZ!%P<DJ-[#+
ME]%OB%XT?AG]3UNB%B66(6)S[")49HFV2%?2*2*I 6N@H JTR4MPR'"OHF
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
MEIG[UOTIN!O^ VC^<?X[<N^3:H%\FILYO#HZO82PH^(_S<;_:,HU_3FT6=F
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
M6 >WS*+F3!C()R1V(PK9=!KGIR2HIGD6TT$UG:7Q))W >]>2'#16@WH;QL=
MJ7;2]CTV>L<)/>\;\T]X/]ZW3&^Y-"!PXZ3D9#J)0/<CTQM6M:%-U\JZI@_+
MVOUE4/L M[]1RNX-?\#XWRI^ U!+ P04    "  SBWU4<PV _>X"   "!@
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
M;"]W;W)K<VAE971S+W-H965T,S N>&ULM5;;;N,X#/T5PN@"NX!;W^)+BB1
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
M1 *:P[/9C-K<<XUF0FGUWHA/\MJ]':F:Y##QS&(JD,_@I88X![X!V8_JKTB
M_JTB] F%>#A(@OC(N@&E1BC+\X8WC&A#D'$A-7TC;MO.PG XP/@+.D=G232(
M<&(L@PX&<3(TQA /HB1![TW5/[K-'.3.[:Q"N6@JW5WL/MH_"UFW#;_3NS?E
MEL@=K11BL#70X"(9>DAV>]HY6M1N-S9"FTUS9FF>-I VP9QOA= 'QPKTCV7Z
M"U!+ P04    "  SBWU41:EO*I4$   X#0  &0   'AL+W=O<FMS:&5E=',O
M<VAE970S,BYX;6RM5VUOHS@0_BL6BG2MQ!%LP) JB=2WNZZT>^VENU?M1Q*<
M!)5 UCA-^^]OQAB7;5-:K5:5XO&,Y\6>QT_->%_)^WHMA"*/FZ*L)\Y:J>W)
M<%@OUF*3UEZU%258EI7<I JF<C6LMU*DF7;:%$/F^WRX2?/2F8ZU[D9.Q]5.
M%7DI;B2I=YM-*I_.1%'M)PYU6L4L7ZT5*H;3\39=B5NAOFUO),R&-DJ6;T19
MYU5)I%A.G%-Z<A;C>KW@OUSLZXY,<"?SJKK'R:=LXOA8D"C$0F&$%(8'<2Z*
M @-!&3],3,>F1,>NW$;_2^\=]C)/:W%>%7=YIM83)W%()I;IKE"S:G\ES'XB
MC+>HBEK_DGVS-F(.6>QJ56V,,U2PR<MF3!_-.70<$O\-!V8<F*Z[2:2KO$A5
M.AW+:D\DKH9H*.BM:F\H+B^Q*;=*@C4'/S6].IU=7EU_OKB<W?Y!+O_]]NGK
M=W+T-9T7HCX>#Q5DP'7#A8EVUD1C;T2CC'RI2K6NR669B>SG $,HS=;'VOK.
M6&_$"['P2$!=PGQ&>^(%=K^!CA>\$>]VG4JQKHI,R!HV_&.7JZ>3GKBAC1OJ
MN.%;<56UN"?76X1:3:YWJE9IF>7EZM A]H;":WA2;].%F#APSVHA'X0S)7 0
M8C,7TA[&*XU/_MGI>;6TA=QI5(J,G#X("9>,7#X*N<AK06YDOA"_X-'9FDOF
M8I67)8@882MD7F6$!LR-?)\,"/-B1N+8SB)._I9IB<&IK[74&P6$-^L#;\1M
MLHS\"7]'C>68^%[H@VV;R]82N;ZV4.XE_L]%B3+KEA,&>BD6P/G+ZGHZ']G.
M1[V=/]!S D.[%;Q*9/YD3F^6EBMQ"!*].0Y#HINP+:)MFNUBMXIVD2ZB;?U,
M('5CC'.XN1)8<I<6Y'.^%"0OR7>1RKI=^AXT!M G: :+33^9E8U%#PGBE45@
M\WS:RL:" Z" -=V%!:R5C6700,; )T25D8T%^THY:9P"#WXBVWZ*_B%"B3+C
M3ZUL+ ,2>SYORPJ\.'HN45M:/#$O&;T$5P^:N$43_P"/W*42+\J[1-(;Z[<0
MB:WDXTSR89=WJ82Y?CAR:="T-8I 02/H)X] $7CPW\;RB<M][B8 (>K% 8F2
MR W#& $2O^24F+LQP.88V,6+8QA;7CEBO.4;,$$.&#D-W2@)M(CP..ZCFL -
M$NKBB6*YC+VNOP<@L05(W N00]#X!;[I3?(^W]@JNEE?*E] XQ4W_6;JX6%[
M58$)_"ZS@,4P$(T2E[((4<+MI,-. (PP#MQ1E. DM),._0#JN.&OP#>BT>,
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
MAD913RE$A<H*K<#@=L;FR?5BY/-#PB^!C3V*P7>RT?K)#[X7,Q9[02@Q=Y[
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
M=%L)+G"9DG)W-=",X];O>#"!"\Q)TI>0\4FY[)'OCL/0.TI(CV'@VX[MG.G
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
M\!P"SV$B5:A2S;H)^3B/? B=>,W''A](-+9CXG$,1PMZ@<4S"J5,Z3QB*-W
MV()#41 R/WG0.4H%9.M=(M=P[(P,Y[-5=J@;>&\9/FI6S8:4V9 CV0"UB1+[
M>O$0RN<S-&5"CT$K:P1L#XB=<\?YW:)9N!0M;%>M0Z;/<@H13=6:"UW.C.#<
M^MG)5KV^9T\RK2(OQ0S;U0QDVT?C[VD()6R2$0S]&9K"/K814TH/MFO/%/I]
M)@14]/TNM.RNNKZXOI&-XX95L*4>8;L@_<HJUD6%$"/J$PUO3(;6I2Z5"MNE
MJGFIT7]H% KX9H.&YI];%L^9^->V_*7Z8+O\&!G5E:B!S;J>>"8NCYE5T9:R
M@^VZ,TSC-,H^4*#52#+AU 5SQD0(L/NHW,PSG9#MRZ'4#6+7C2E7>B%H%+W
M&D1I-ON,+5(1JM!X4@9YQ"-U>'C4K(JX5!5B5Y63C_2 U)4 FPK<Z%3#\0F&
MU:Q*=2%V,<A6%-UO#"I=C5AJ K%KPOM7=D3JA1YW#$V,R<[5DM# 0JD&Q*X&
M>3=K):"L_>1([?\% @RUW;W V8=ME8&Z(7$Z7>RZ#124(D#L(O!EQ]%7EBRY
MD% 6]2>'[I!F-((2<$)M)&4Y)O9R_/Y^YDA WZOW,SE;=L? /]((D;+@$WO!
MK[+W^DV,IO1%]YZV*<HJ38Y4Z??S9@_HN8V\V1U=TL1;^^!B+6;B*;L"E2AC
M8W\74HP6UZS]['+QS?@ 7PZQ87R$+\?[2]0R_/Y.]Y:*)_CB0!%;P53.>0!G
M1.RO2?<OBF^R:[TY5XK'V>.:T243V@!^7W$XM_F+GJ"XK.[]#U!+ P04
M"  SBWU4/.S#KBD"  !U!0  &0   'AL+W=O<FMS:&5E=',O<VAE970T,2YX
M;6R-5%U/VS 4_2M6M >0MN:;%I1&&BUL?8!5[6#/;G+;6#AV9KL-_/O93AH%
M^C%>$E_[G)-S;G2=U%R\R ) H=>2,CEV"J6J&]>560$EE@-> =,G:RY*K'0I
M-JZL!.#<DDKJ!IYWY9:8,"=-[-Y<I G?*DH8S 62V[+$XNT6**_'CN_L-Q9D
M4RBSX:9)A3>P!/54S86NW$XE)R4P23A# M9CY[M_,XD-W@*>"=2RMT8FR8KS
M%U/,\K'C&4- (5-& >O7#B9 J1'2-OZVFD[W24/LK_?J]S:[SK+"$B:<_B&Y
M*L;.R$$YK/&6J@6O?T*;QQK,.)7VB>H&&P8.RK92\;(E:P<E8<T;O[9]Z!'\
MZ 0A: G!9PEA2PAMT,:9C37%"J>)X#42!JW5S,+VQK)U&L+,7UPJH4^)YJET
M]OA\]_C[UV)VMT074U"84'F)OJ&GY11=?+E,7*4_8J!NU@K>-H+!"<$I9 ,4
M^E]1X 7^$?KD\W3O/=W5T;I\09<OL'KA__.=40L[M="J12?4[@DCNM<Y^L%Y
M+H\UI^%?6;Z9H%T:!=>A-])9=OTN'.+"R(N\(.YP[PQ&G<'HK,$%KM$#5B (
MID?]-?2X[R_6G?YH[Q 6#H?1M7?<7=RYB\^ZF[$=,,7%VS%G\6'GAE$8''3N
M$!<.1W[L?^R<VQL*<R$]8+$A3"(*:\WT!D,M))HA;PK%*SLG*Z[TU-EEH>]%
M$ :@S]><JWUA1J^[:=-_4$L#!!0    ( #.+?505(0'1\ $  & $   9
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
M!JB %=DPLY"[S]#4XP7FDFG_1+LZ-HD#E&^TD;P!6P6<BOI-'IL^' "BWA$
M;@#X):![!! W@-@76BOS94V((5FJY XI%VW9W,'WQJ-M-52XKWAKE+VE%F>R
M^>++?+I8_D##FPF:?KV[GL^F-TMT-@%#*-/HABA%7*?/T0=T=SM!9^_.T]#8
MS X?YDV649T%'\D28323PI0:344!Q7."T$IN=>.][A$^R3B!_ +%T7N$.SAZ
M0]#XW^&=$W+BMHVQYXO_JXTGB+LM<=<3=X\*M<.94^+^^;?Z7J-['NTF=IOA
MRQ@G_33<'G;C=5C<Q0F.V[!GXI)67')2W)!+9>@O+P[)%5J"(,*@:UXIN04[
MZP8-F=T31.3PEOCDM:I^U.^^T/ZWJ%IZ># #'-3:KP:-<KD1IOZM6F^[?89^
MZ%[X1W8KU4OD#TV]TF9$K:G0B,'*4G8N/EIEJEX3M6%DY2?M7AH[M_Y8VLT*
MR@78^Y649F^X!.VNSGX#4$L#!!0    ( #.+?515HI>,40(  +(%   9
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
MP4AUP.NI5P>256;2;)E4<\LL<_6A *X3U'G&F#P'>GBUGY[X+U!+ P04
M"  SBWU4,CGI2"D"  #Y!   &0   'AL+W=O<FMS:&5E=',O<VAE970T."YX
M;6R-5-MNVS ,_17!V$,+;)%O38;",9#;M@)K$-3M]JS83"S4DCQ)B=-]_239
M\;*N"?IBB13/X2$M*FF$?%8E@$8'5G$U]DJMZUN,55X"(VH@:N#F9",D(]J8
M<HM5+8$4#L0J'/K^$#-"N9<FSK>2:2)VNJ(<5A*I'6-$ODRA$LW8"[RCXX%N
M2VT=.$UJLH4,]%.]DL;"/4M!&7!%!4<2-F-O$MS.8AOO GY0:-3)'ME*UD(\
M6^.N&'N^%005Y-HR$+/L809598F,C%\=I]>GM,#3_9']BZO=U+(F"F:B^DD+
M78Z]SQXJ8$-VE7X0S3?HZKFQ?+FHE/NBIHV-37"^4UJP#FP4,,K;E1RZ/IP
M@N$90-@!PM> ^ P@Z@"1*[15YLJ:$TW21(H&21MMV.S&]<:A3364V[^8:6E.
MJ<'I]&[Y.%E^O9M^7Z!)EBT>,W0U!TUHI="22$ELDZ_1)_24S='5A^L$:Y/4
M0G'>)9BV"<(S"8(0W0NN2X46O(#B7P)LU/:2PZ/D:7B1<0[Y $7!1Q3Z8?"&
MH-G[X?X%.5'?P<CQ1>_MX 7.N.>,'6=\AG/"A-3T-W$W?7$P(ZO@K=:W+$/'
M8N=UGP9![ \3O#_MQ_]1T6@41J,^K-6(3VX1 [EUPZ50+G9<MW^G]_;S.W'7
M]I5_:N:Z'<._-.VC<$_DEG*%*M@82G\PNO&0; >M-;2HW5U="VUNOMN6YFT"
M:0/,^48(?31L@OZU2_\ 4$L#!!0    ( #.+?52X.W:(< (  *4&   9
M>&PO=V]R:W-H965T<R]S:&5E=#0Y+GAM;(U576_:,!3]*U:TAU9J29Q/J" 2
MA4Z;Q#94RO9LX )6G3BS3>G^_6PG1#0)J"^)/^XY/N<DN1D>N7B5>P"%WC.6
MRY&S5ZIX<%VYWD-&9(\7D.N=+1<947HJ=JXL!)"-!67,]3TO=C-"<R<=VK6Y
M2(?\H!C-82Z0/&09$?\>@?'CR,'.:>&9[O;*++CIL" [6(!:%G.A9V[-LJ$9
MY)+R' G8CIPQ?I@DIMX6_*9PE&=C9)RL.'\UD^^;D>,90<!@K0P#T;<WF !C
MADC+^%MQ.O61!G@^/K%_M=ZUEQ61,.'L#]VH_<CI.V@#6W)@ZID?OT'E)S)\
M:\ZDO:)C61MY#EH?I.)9!=8*,IJ7=_)>Y7 &P.$%@%\!_,\"@@H06*.E,FMK
M2A1)AX(?D3#5FLT,;#86K=W0W#S%A1)ZEVJ<2F=/X\73 MU,01'*Y"VZ1\O%
M%-U\N1VZ2O.;*G==<3V67/X%KBFL>RC =\CW?-P!GWP>[GV$N]I5;<VOK?F6
M+[C -Y82E+Q"%-1$@24*+Q#]*D 01?,=FH%^8Y!]U1'?HJ6>V%.ZLBHY8\MI
MOJ6W-.H'?J*#>3O/I%T6!SCRD[KL@^2PEAQ>]3ZC9$49512N!1#5;-'5 "8'
M(2!7:,Z%_?:T]1G/=_<O(#+42*<KBI(].O,XP$D2-9)H5_6Q[P?=0<2U]/BJ
M](LZ[]!/L ^Q8:Y+?]Q6%N,0-PVTRP91@ =>MX.D=I!<=?#"%6%=JI+6F],X
MKE35+L->$(:X&:Q[UD1, _]!Q([F$C'8:J372[0Q43;%<J)X8?O*BBO=I>QP
MK_\C($R!WM]RKDX3TZKJ/U/Z'U!+ P04    "  SBWU4HLI4!A<"  #?!
M&0   'AL+W=O<FMS:&5E=',O<VAE970U,"YX;6R-E-MNVS ,AE]%,';1 EOD
M0Y)NA6,@IV$#6BQHT.U:L1E;J"QYDA)G;S\=',\KFFPWMBCQ_T32I--6R!=5
M 6ATJAE7LZ#2NKG'6.45U$2-1 /<G.R%K(DVIBRQ:B20PHEJAN,PG.*:4!YD
MJ=O;R"P5!\THAXU$ZE#71/Y: !/M+(B"\\83+2MM-W"6-J2$+>CG9B.-A7M*
M06O@B@J.).QGP3RZ7XZMOW/X3J%5@S6RF>R$>+'&UV(6A#8@8)!K2R#F=80E
M,&9!)HR?'3/HK[3"X?I,_^QR-[GLB(*E8#]HH:M9\#% !>S)@>DGT7Z!+I^)
MY>6"*?=$K?>-/P4H/R@MZDYL(J@I]V]RZNHP$$33"X*X$\2O!>,+@J03)"Y1
M'YE+:T4TR5(I6B2MMZ'9A:N-4YML*+=?<:NE.:5&I[.']7R[WJ*;%6A"F4+1
M+?J GK<K=//N-L7:W&#]<-[1%IX67Z!%,7H47%<*K7D!Q=\ ;$+KXXO/\2WB
MJ\05Y".41.]1',;1&P$M_U\>7@DGZ<N5.%YRM5Q70.,>-':@\070MP8DT927
MZ %,%Z+UR<RE@K=*[D%3![)#><RBR5T235)\'!;BGVX^3CSHE1IDZ49(H5P<
MN/:?I=_MIW3NFO/5_L),KQ^V/Q@_^H]$EI0KQ&!OD.'H;A(@Z<?)&UHTKB-W
M0IO^=LO*_(% 6@=SOA="GPU[0?]/RWX#4$L#!!0    ( #.+?534=76M-0(
M .\%   9    >&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM;)54:VO;,!3]*\(P
MV&#S,VE*< QYC0U:%I)M_:S8-[:H'IZDU.V_GR0[7EH2TWVQ=*]TCLZ1=6_:
M"/FH*@"-GAGE:N956M?3(%!Y!0PK7]3 S<I!2(:U"649J%H"+AR(T2 .PYN
M8<*]+'6YC<Q2<=24<-A(I(Z,8?FR "J:F1=YI\26E)6VB2!+:US"#O2O>B--
M%/0L!6' %1$<23C,O'DT78[M?K?A-X%&G<V1=;(7XM$&WXN9%UI!0"'7E@&;
MX0F60*DE,C+^=)Q>?Z0%GL]/[%^==^-ECQ4L!7T@A:YFWJV'"CC@(]5;T7R#
MSH\3F NJW!<U[=[QC8?RH]*"=6"C@!'>COBYNX<S0'0-$'> ^"U@= 60=(#$
M&6V5.5LKK'&62M$@:7<;-CMQ=^/0Q@WA]B_NM#2KQ.!T=K>>[]8[]'$%&A.J
M4/PI#;3AM:M!WG$L6H[X"D<4HWO!=:70FA=0O"8(C*!>57Q2M8@'&5>0^RB)
M/J,XC*,+@I;OAX<#<I+^DA+'EPQ>T@#1J"<:.:+1%:(']ZJ@^#)_ FF*!&W!
M5AKA);H#\QC13Y!LBG[49E7W677IEPP?-/'C,7H!+"]AE\/8VRO85X['O>/Q
M(-F*J%P<N49;K.%]SH8))WX8?KADZK]AK9_@K'88R-*U%(6<Z/;!]MF^:\U=
ML;[)+TPW:YO//YJV%=YC61*N$(6#H0S]B9$JV_;2!EK4KD+W0IMZ=]/*=&20
M=H-9/PBA3X$]H._QV5]02P,$%     @ ,XM]5 /#@18W @  #P4  !D   !X
M;"]W;W)K<VAE971S+W-H965T-3(N>&ULC53;;MLP#/T5PMA#"VSQ+4V#P#&0
MV[ !*Q TZ/:LV$PL5!=/DI/N[R?)CIL52; 76Z1X#@\I4=E1JE==(1IXXTSH
M:5 94T_"4!<5<J('LD9A=W92<6*LJ?:AKA62TH,X"Y,H&H6<4!'DF?>M59[)
MQC J<*U -YP3]6>.3!ZG01R<',]T7QGG"/.L)GO<H'FIU\I:8<]24HY"4RE
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
MP+@V4 IKO"W$@NZ^0)./K_@26G#]1+O:-W -E&RYH&4#EA&4.:G?^*6IPQ%
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
M>)1N'ACUF4A.T+_O.%?%3M*@?&.S_ ]02P,$%     @ ,XM]5.9^I@*& P
ME0P  !D   !X;"]W;W)K<VAE971S+W-H965T-C N>&ULK5?;;N,V$/T50NA#
M"^Q*(G7UPC80.VZSP&Z3)MT&?:0EVB96$E62CM._+TG)LJ*; W1?;)*:.7-F
M-#,<S4^,?Q<'0B1XS;-"+*R#E.4GQQ')@>18V*PDA7JR8SS'4FWYWA$E)S@U
M2GGF(-<-G1S3PEK.S=D#7\[946:T( \<B&.>8_[OBF3LM+"@=3YXI/N#U ?.
M<E[B/7DB\EOYP-7.:5!2FI-"4%8 3G8+ZP9^6L-(*QB)OR@YB=8::%>VC'W7
MF\_IPG(U(Y*11&H(K/Y>R)IDF492//ZI0:W&IE9LK\_HOQKGE3-;+,B:9<\T
ME8>%%5L@)3M\S.0C.]V1VJ% XR4L$^87G"K9P+- <A22Y;6R8I#3HOK'KW4@
M6@HP'%% M0+J*O@C"EZMX!E'*V;&K5LL\7+.V0EP+:W0],+$QF@K;VBA7^.3
MY.HI57IR^71W\[BYN_]RNWE\ IL_OGW^\V_P\RV1F&8"H%_ 1_ 3<( X8$[$
MW)'*HM9SDAI]5:&C$72(P%=6R(, FR(EZ5L 1U%M^*(SWQ6:1+PEB0T\^ $@
M%\$!0NOWJ[L3=+PF?)[!\T;P?C_F6\(!VX'[4J>EF,#T&TS?8/HCF/='*20N
M4EKL/P!2I!J]))RR=.@%5%B!P=(U^[*$ON>ZRKF7 0Y!PR&8Y/",.<>%G'(G
M;*#"'Q:BJ,&,WA^B+=G3HE#+Z4!%O4 AUY]!SVLB5270@!P, C<,AB,:-Y3C
M2<J_Z7AV2Z!B%O=?8>B&<1QWF/7E@CCP_6B8V*PA-ILDMGDE/*%BD-IZUC/Y
M,0JC63AL$KJ7KN->,5I2/AR-6O.-312BH)72%;<AP1#Z0>R-L&OU1/@#*[ &
M:_/PO!B:_O26<%^PFX)O":,+83198\_FMB(IN'DA7-V^X/Q2P0.G"9FH.'CI
M=-";;@EG&[BV0<XV2FWCW758FXG:4;"#H!NKOI1G0S02J$MKA=.]]:H3$V5:
M0\?M.K6C;OL8D/+MV4B-PDL_AE<:\C7B4V6\JL';F=>KIJ#'&]G1&.]+\X?A
M_^4]W@G" 4IA+U/Z4J'MC_"^7#!P^H:YROMZ6X@&\ARA+OLAJ:![USBM 2\G
M?&_F7@$2=BQD-3LUI\UL?6,FRL[Y2L_<9G"\P%0#^U?,5?D*D)&=@G3M2.4#
MKV;@:B-9:<;(+9-J*#7+@_IN(%P+J.<[QN1YHPTT7R++_P!02P,$%     @
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
M970V,BYX;6R]7&U3XS@2_BLJ;O=JIXHUEM^]PU#%$B!0-PLW[,S6U=5],(D
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
M2>GZ2ULMN]=1WE=M6RVZCT\DFY.:%:"_/U15N_G"WG"Y?5?LR7\!4$L#!!0
M   ( #.+?52(I3+J_0$  &\$   9    >&PO=V]R:W-H965T<R]S:&5E=#8S
M+GAM;)U446^;,!#^*Y:UAU;:8@)M-E4$J279EH?0J$FW9P<NP:K!S+Z4]M_/
M-@1E4E-5>\%W]GW?W7><';=*/YD2 ,E+)6LSI25B<\.8R4NHN!FI!FI[LE.Z
MXFA=O6>FT< +#ZHD"X-@PBHN:IK$?F^EDU@=4(H:5IJ80U5Q_7H'4K53.J;'
MC0>Q+]%ML"1N^![6@(_-2EN/#2R%J* V0M5$PVY*;\<W:>3B?< O :TYL8E3
MLE7JR3F+8DH#5Q!(R-$Q<+L\0PI2.B);QI^>DPXI'?#4/K)_]]JMEBTWD"KY
M6Q183NDW2@K8\8/$!]7^A%[/M>/+E33^2]HN=A)0DA\,JJH'VPHJ47<K?^G[
M< (87YT!A#T@_"@@Z@&^<ZRKS,N:<>1)K%5+M(NV;,[PO?%HJT;4[B^N4=M3
M87&8I/?+Y6*SG&>;-;G-9B2]SS:+[,<\2Q?S-;F8 7(A#<FXUMPU_))\(8_K
M&;GX=!DSM 4X&I;WR>ZZ9.&99#/(1R0:?R9A$([?@*<?AP?_PIF5/6@/!^VA
MYXO^1_L[_-' 'WG^JW/\DHO*$+ZWE\D@:;0J#CD2*?A62(&O;S6P8YQX1G<#
MGQ.K]/FT1^]%=&6RDW%P5W')]=Y60"3L+"88?;VF1'?CW3FH&C\A6X5VWKQ9
MVA<!M NPYSNE\.BXH1O>F.0O4$L#!!0    ( #.+?53=R\E '0(  *X%   9
M    >&PO=V]R:W-H965T<R]S:&5E=#8T+GAM;*V4VX[:,!"&7\6*>K&5*AP2
M MU5B,2IAPLH K:]-F$@UMIQ:ANR^_9K.R%BNZ$J4KD@'GOF__XA>.)2R">5
M 6CTS%FNAEZF=?& L4HSX$1U1 &Y.=D+R8DVH3Q@54@@.U?$&0Y\OX\YH;F7
MQ&YO*9-8'#6C.2PE4D?.B7P9 Q/ET.MZYXT5/63:;N D+L@!UJ ?BZ4T$6Y4
M=I1#KJC(D83]T!MU'\8#F^\2?E(HU<4:V4ZV0CS9X/MNZ/G6$#!(M54@YG&"
M"3!FA8R-W[6FUR!MX>7ZK/[%]6YZV1(%$\%^T9W.AMYG#^U@3XY,KT3Y#>I^
M(JN7"J;<-RJKW##R4'I46O"ZV#C@-*^>Y+G^'2X*@NZ5@J N")SO"N1<3HDF
M22Q%B:3--FIVX5IUU<8<S>U+66MI3JFIT\GDQV*S&DTV:S1:3-'HZVHVF\\6
M)KR;@B:4J8\QUH9CLW%::XXKS>"*YAJ*#@K]3RCP@^[C>HKN/ORA@HW+QFK0
M6 V<;/B?K+Z!A TD=)#>%<@44N!;D"CL.O]!6_N51-])V'_]*0E]\XGQJ87<
M:\B]F\AA&[F2B/Z-'#7DZ"9RKXT<W4+N-^3^3>2HC=Q_1[Y"'334P5^I&Z$)
M0W.:4W[D:$E>S)#1J@T]>/>B[UN:QA?7STZR.9$'FBO$8&_J_,[ >)?5=*@"
M+0IW([="F_OMEID9J"!M@CG?"Z'/@;WDS8A.7@%02P,$%     @ ,XM]5!)8
MU .X!   /1(  !D   !X;"]W;W)K<VAE971S+W-H965T-C4N>&ULK5AK;^(X
M%/TK%MH/K31+8D.@K2A2>71G5NI#I3/SV22&6./$C.V4]M_O=1(2*(G+[K8?
M2AX^YY[K:Q_;&6VE^J5CQ@QZ342JKSNQ,9LKS]-AS!*JNW+#4GBSDBJA!F[5
MVM,;Q6B4@Q+A$=\?> GE:6<\RI\]JO%(9D;PE#TJI+,DH>IMPH3<7G=P9_?@
MB:]C8Q]XX]&&KMF"F>^;1P5W7L42\82EFLL4*;:Z[MS@JULRL("\Q0_.MGKO
M&ME4EE+^LC??HNN.;Q4QP4)C*2C\O+ I$\(R@8[?)6FGBFF!^]<[]ML\>4AF
M236;2O&31R:^[EQT4,16-!/F26Z_LC*AP/*%4NC\/]H6;8-!!X69-C(IP: @
MX6GQ2U_+CM@# $\S@)0 \A[0;P'T2D#O/:!-4K\$]$^-$)2 X%3 H 3DQ?2*
MSLI[>D8-'8^4W")E6P.;O<C+E:.A@WEJ1];"*'C+ 6?&TX?[YZ>;Z?,"W=S/
MT,U?3_/YW?P>;L]FS% N-+JG2E%;_G/T)_J^F*&S/\Y'GH'8EL$+RSB3(@YI
MB8/1G4Q-K-$\C5C4@)]]@"<. @^2KC(GN\PGQ,FX8)LN(N0+(C[Q&P1-W? 9
M"[NHART<#YOR.1E.< -\?CJ\2?RM&_X0FB[R&^$'?=FK1E$OY^NW\/U@,0\%
M0U2 4]$T9$T=4E ,<@IK>"_C@3_T>R/O93_OCUH=Z.M7^OI.?1-)583D"MVQ
M9,F4=J0<5)2!D_);&H*3:Q8AFJ89%6C%FK*>!D?Y]'WX:\YG4 4?N(-KG4%D
M'5/%M,TKE$D"/@UV$?Y"4:9XND8;IKALG&H%>;"G*3C05%3BHU8'RH>5\N%G
M*?^"7JC(&H?2\+A3+XX3^*C500(750(7S@2FH)<;PQB:QI0KD*IEZAA/EQ7O
MY:>,I\OCI(+6I+!?+P.^,_S\E869=7ETLU:,P=[!:'0V%UQKBO[NHD5,4W;N
MR!/OK3CX?YO%;<FQGR=N3Y/4L8DS]C-3B1UU=)=DXTKFYC Q8-$;HTX?P;5W
M8K=Y3J#JNZ)K*F!_U[@\'ALC&;;/1UQ;(W9[XT^[OD.U&ZO0/_* R]XP:(M9
M>R=VFV<9$QF)-ID*8]L#S9;0J"KX5ZIJ4\5N5WW8V,VN1JM,"! !N^>(V:T/
M: %5)H8J)3(#V3!NN!&-VY@Y/K;-GM_W+UO$U;Z)W<;9/$&_4A&Q%"U.F:"U
MPV&WQ9TV2=P<)TZ2VAVQVQY/FB03?.R.^9K5,C1(;8_$;8^.23(IH0<5'[9[
M,JF-DKB-TJZ5UA]M+60^-O_;A)F4<0X48M(V84CMIL3MA$^,)\M,Z5PA>X73
MK@9!5&L9<FI@*=MR$Z.L>$\S.,O()1=-?C\I(^U7KG5&D]I:B=M:86\^0//?
M&3=OZ%%0USI-:L,D;L/\K++,R+&[NLI2NRMQN^M42)UOHQ0'E;!#*30U'A,*
MIN%^MW?]08N"VDF)VTEWTP6%MJ-$LU7>DF.K;/)Q;^]TFS"USK]# +6UXN*(
M4CVMOG7<Y"?\=\\G^&J*&Y[/\-6\^))1TQ<?5NZH6G-8$01;02B_.P2MJOA6
M4=P8N<G/UDMI8'3GES&CL&S8!O!^):79W=@ U1>C\3]02P,$%     @ ,XM]
M5+V1 P : P  B@D  !D   !X;"]W;W)K<VAE971S+W-H965T-C8N>&ULK99=
M<]HX%(;_BL;3BW1F&TM&_J #S!";3IGII@R0;6\5<PB>RA8KB9#\^Y5LQPO8
MN+GH#9:L]SWGT<'6\>@HY"^U ]#H)>>%&CL[K?>?75>E.\B9NA5[*,S*5LB<
M:3.53Z[:2V";TI1SU\,X<'.6%<YD5-Y;R,E('#3/"EA(I YYSN3K'7!Q'#O$
M>;NQS)YVVMYP)Z,]>X(5Z(?]0IJ9VT399#D4*A,%DK =.U/R.2'8&DK%/QD<
MU<D8V:T\"O'+3N:;L8,M$7!(M0W!S.498N#<1C(<_]9!G2:G-9Z.WZ)_*3=O
M-O/(%,2"_\@V>C=V(@=M8,L.7"_%\2O4&_)MO%1P5?ZB8Z4-0@>E!Z5%7IL-
M09X5U96]U(4X,1!ZQ>#5!N^]AD%M&+S70&L#+2M3;:6L0\(TFXRD.")IU2::
M'93%+-UF^UEA__>5EF8U,SX]F<;Q\F&6H-G/Q>Q^-5NAZ7V"OJ^_SI8H?E@N
M9_=K]&T^O9M_FZ_G9O4F <TRKCZB3^AAE:";#Q]'KC8<-IJ;UCGOJIS>E9P)
MI+=H0/Y"'O9(ASWNMZ]@;^SXJCUY?W9\;G=-\9H*>DT%O3+>X(]4L"?AH$DX
M*!/2*PECD>>9LB^>ZBI>90Y*LWWKGR>>%P6!/W*?3XO4EA&?A'C8R,[8:,-&
M>]D6[%4*SA$K-N94X$S#!J5"Z4[2*I1_2DH)'= +TK8LHACC;E"_ ?5[09-,
MFI-'2/0%H!/.;V4=$,_'%VQM%3U3G;$%#5O0R[9B'!1:LQ=DRLD>.73Q!:W,
M9$@)N>!KJX9A1+OQP@8O[,6;%ZG(P?(9RIH0W=P+#8@$7<=!'+8H+NO85H3A
MU?\X:D"C7M!IFLJ#>0"/3$I6Z-<W2-H)&;40@N@4H0+]G>H,=-B #GM!O^L=
M2-,"*UQX,4U==3^5PW:=_(A&%Y =*DQPT U)\/^M O=BKH5FO/.XQZW#) AH
M@"^XXG?JD@Z=CTE$+P\G]Z3OV:^4OYE\R@J%.&R-$=^&I@2R:OS51(M]V0H?
MA3:-M1SNS,<22"LPZUMA'I!Z8KMK\_DU^0]02P,$%     @ ,XM]5"NJ!/R+
M @    <  !D   !X;"]W;W)K<VAE971S+W-H965T-C<N>&ULE95=3]LP%(;_
MBA7M J2-?+4)0FVD?C!M%TQ5&4.[-,EI8^'8G>TV\.]W[*0A0-NQF\9VSGG]
MG%/[S:B6ZE&7 (8\55SHL5<:L[GR?9V74%%](3<@\,U*JHH:G*JUKS<*:.&2
M*NY'09#X%67"RT9N;:&RD=P:S@0L%-';JJ+J>0I<UF,O]/8+2[8NC5WPL]&&
MKN$6S-UFH7#F=RH%JT!H)@51L!I[D_!JEMIX%_"+0:U[8V(K>9#RT4Z^%V,O
ML$# (3=6@>)C!S/@W HAQI]6T^NVM(G]\5[]JZL=:WF@&F:2W[/"E&/OTB,%
MK.B6FZ6LOT%;S]#JY9)K]TOJ)C9./9)OM9%5FXP$%1/-DSZU?>@EA,F1A*A-
MB-XF#(XDQ&U"[ IMR%Q9<VIH-E*R)LI&HYH=N-ZX;*R&"?LOWAJ%;QGFF6PR
MFRWOKN?D?K)<3G[\_$W.YF HX_J<?"%WMW-R]NE\Y!O<R<;[>:LZ;52C(ZIA
M1&ZD,*4FUZ* XK6 CX@=9[3GG$8G%>>07Y X_$RB( H/ ,T^GAZ<P(F[ML5.
M+_Y@VTY(#CK)@9,<')&<PIH)P<0:CW:NME"0FBI%A7DFN=1&'_H7&L7$*=K[
MNLN2RR#  G?]UKR/BH-^U"O<88<[/(F[4'+'W%U&*WE!A2?T%PV'8!N]80\C
M'2;AY1O8]U%A$ :#\#!MTM$F)VG1C0P'=!]#Y*K76$Y9=;"SR3N,+X=H#X0E
M\5':M*--3]+BI?F_<Y!^Z!S\*ZIA]7MF4H%:.X_5N/=6F.:^=JN=C4^<>[U9
MGZ*]-V[\(M-\&VZHPK.N"8<52@87*390-7[;3(S<.,MZD 8-T U+_$2!L@'X
M?B6EV4_L!MU'+_L+4$L#!!0    ( #.+?53OTC,(J@(  *,&   9    >&PO
M=V]R:W-H965T<R]S:&5E=#8X+GAM;(U5:6_;, S]*X2Q 2VPQ4>NHD@"Y-@%
MM)W1HAOV4;'I1(@M>9+<M/]^E.QZV> 8_6+KX'M\)"5J=I3JH/>(!IZ+7.BY
MMS>FO/9]G>RQ8'H@2Q2TDTE5,$-3M?-UJ9"E#E3D?A0$$[]@7'B+F5N+U6(F
M*Y-S@;$"714%4R\KS.5Q[H7>Z\(]W^V-7? 7LY+M\ '-8QDKFODM2\H+%)I+
M 0JSN;<,K]=3:^\,?G \ZI,QV$BV4A[LY%LZ]P(K"'-,C&5@]'O"->:Y)2(9
MOQM.KW5I@:?C5_;/+G:*9<LTKF7^DZ=F/_>N/$@Q8U5N[N7Q*S;QC"U?(G/M
MOG"L;<=DG%3:R*(!DX*"B_K/GIL\G #"R1E U "B_P&C,X!A QBZ0&ME+JP-
M,VPQ4_((REH3FQVXW#@T1<.%K>*#4;3+"6<6-]^7=Q O?RU7-Y_@8H.&\5S#
M'5.*V?Q>PD=X?-C Q;O+F6_(GT7Y2<.]JKFC,]QA!+=2F+V&3R+%]%\"GX2V
M:J-7M:NHEW&#R0"&X0>(@BCL$+3NAR]+-8"HA@<]<H9M\H:.;_B&Y/70C5JZ
MD:,;G:.33$!6B92+'61*%G 1LQ>ZM\D!8B5-<_)IN%.LZ"K(NG8P<0[L!7Y:
MC,)@&E"P3QW"QJVP<:^P+]0-@#SCLR%I%==[NL>&;LO6=)V*<8>(T?AJV"UB
MTHJ8](J(XQA<AK@PJ% ;H".*4*(")D156('4IK1A=0)+Q47"2Y9WY:G?53@(
M@O<]!9VVDJ>]/(]"8U(I3"&WPEM%P I940)E!FMN7NBZV<+2^HJ)0Y?<Z=O*
MZI_T@0+5SK5'#8EU5K>$=K7MP$O7>/R_YG7[OF5JQX6&'#."!H,I%575+;&>
M&%FZKK*5AGJ4&^[I%4%E#6@_DW1@FXEUT+Y+BS]02P,$%     @ ,XM]5!L$
MQ\3* @  O@D  !D   !X;"]W;W)K<VAE971S+W-H965T-CDN>&ULG99=;]HP
M%(;_BA7MHI76Y@M(01"I0*OUHALJ[;9;-SF0J(G-;/.Q?S_;"2&!X%7<D-@Y
M[^O'!W^<X9:R#YX "+3+,\)'5B+$:F#;/$H@Q_R6KH#(+PO*<BQDDRUMOF*
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
M=W'%XUXWVB!,@'Z_Y5R]#\P"=>L^^P=02P,$%     @ ,XM]5'8,'C9@ P
M!@P  !D   !X;"]W;W)K<VAE971S+W-H965T-S(N>&ULG59M;]HZ%/XK5K0/
MFW1IXB2\58!$H5>KU&VHW;K[U80#6'-B9IO2_?O93AJ"XKC5Y0.)D^<\?L[)
M>?'DQ,4ON0=0Z"5GA9P&>Z4.UV$HLSWD1%[Q Q3ZS9:+G"B]%+M0'@20C37*
M61A'T2#,"2V"V<0^6XG9A!\5HP6L!)+'/"?BSPTP?IH&.'A]\$!W>V4>A+/)
M@>S@$=2/PTKH55BS;&@.A:2\0 *VTV".KQ>X;PPLXHG"23;ND7%ES?DOL[C;
M3(/(* (&F3(41%^>80&,&2:MXW=%&M1[&L/F_2O[O]9Y[<R:2%AP]I-NU'X:
MC *T@2TY,O7 3Y^A<L@*S#B3]A^=2FRJ=\R.4O&\,M;KG!;EE;Q4@6@8X+3#
M(*X,XO<:))5!8ATME5FWED21V43P$Q(&K=G,C8V-M=;>T,)\QD<E]%NJ[=3L
M[NOBVY=;]'W^W^TC^K@$12B3*/F$>NC'XQ)]_/!I$BJ]CT&'6<5Y4W+&'9Q+
MR*Y0@O]!<11CA_GB_>;1I7FHO:M=C&L78\N7=/)M00C8($5>$)$2E+SVT"8U
M;6)ITP[:!Y @G@'I4D(W9(.6L%:N6)4L \MBBNIYE@XC_9N$S\V8M&$X&C=A
M%R+36F3J%3G/,G'4KC^1C)BR<0DL&?J-G4>XK<^!BCOE]6MY?:^\GT0(4J@_
MJ JF2UZ_M3$>M^6]A;J0-ZCE#;SR[@I%BAU=,T!SFS<N?8/6SFF4M@4Z8+@[
M@,-:X="K\-L!A/ZPQ0[=@VYFR+;A'M_VCGIQ3\F:,JHH.(4/6XKBP; MW $;
M1YW"1[7PD5?X5SVA&N*Y#J]3Y,@5-D=XV[C$)'&7S'$M<^R5^438T18.FC,]
M\4B1.7-TW-J]EXY31Q4Y@$D_Z=:)HW,?C[Q*ZR[W77>Y[FRM6"X"ZHJG"^<I
M>-R8-_C]W9B=,]37DO&YU>/X_]>#)RIQ.\F'CEIPX3S%@,^S!/N'R4KH@YG0
MC7#%=#]$I-B@V]]'>M ')N=0J>@N$@FG+L4NX-CS(<^3!?M'RT7"O=%J<'MZ
M]-QIYP+Z\NX\:;!_U)B&XZ@1&^JWU/=;L[FEVP<I%8>-0YHY(7\A8D<+B1AL
MM4UT-=04HCQTE@O%#_;<MN9*GP+M[5X?U$$8@'Z_Y5R]+LQ1L#[ZS_X"4$L#
M!!0    ( #.+?52F_!':B (  -@&   9    >&PO=V]R:W-H965T<R]S:&5E
M=#<S+GAM;)V5:T_;,!2&_XH5[0-(&VFN!=1&@I1I2-Q$Q[:O)CEM(AP[L]VF
M_/L=.VE6ULL07Q+;.>_KYQS+)Z-&R!=5 &BRJAA78Z?0NCYW79454%%U(FK@
M^&4F9$4U3N7<5;4$FEM1Q5Q_,(C=BI;<249V[4$F(['0K.3P((E:5!65KY?
M1#-V/&>]\%C."VT6W&14TSE,03_5#Q)G;N^2EQ5P50I.),S&SH5WG@Y-O WX
M44*C-L;$9/(LQ(N97.=C9V" @$&FC0/%UQ)28,P8(<;OSM/IMS3"S?':_:O-
M'7-YI@I2P7Z6N2[&SJE#<IC1!=./HOD&73Z1\<L$4_9)FC8V"AV2+90652=&
M@JKD[9NNNCIL"+QXC\#O!/Z_@GT[!)T@L(FV9#:M"=4T&4G1$&FBT<T,;&VL
M&K,IN3G%J9;XM42=3J[OTOO;*_+]XM?5E!Q-0-.2*7)'I:2FOL?D"WF:3LC1
MI^.1JW$_HW*SSONR]?;W>'L^N15<%XI<\1SRMP8N@O:T_IKVTC_H.('LA 3>
M9^(/?&\'4/I^^>  3M 7+[!^P3N*=\ N[.U":Q?NL;O#2WM?@ZD\GY,;H11)
M\2!>\:XV5.9JUPFTCK%U-#=VF7A1X.$=QOR6FY79$>B%<;09^ 8ZZJ&C@]!3
M3360CZ"WOM$;HM-3;QM]._ LCH.]Y'%/'O^WW'CA04K(B:8K0I4"K4C),^R'
M"A>7E"UHVVT8MCO*,]B52+Q=VM#S]O(->[[AA_C>1Y4.MZC"LW 'E;O1/"J0
M<]M3%<G$@NNVC_2K?=N^L-W*_1O>]OQ;*N<E5X3!#*6#DR&>F6S[:#O1HK:M
MZ%EH;&QV6."O!Z0)P.\S(?1Z8C;H?V;)'U!+ P04    "  SBWU4.$5\&SX"
M  #$!@  &0   'AL+W=O<FMS:&5E=',O<VAE970W-"YX;6RME=N.VC 0AE_%
MBE2IE2IRX+P*D2!0=2\X"-CVVB0#L4CLU#;-[MO7=H*72B7;"VX2'V8^_[]M
MC<.*\;/( "1Z+7(J)DXF9?GDNB+)H,"BPTJ@:N;(>(&EZO*3*TH..#5)1>X&
MGC=P"TRH$X5F;,.CD%UD3BAL.!*7HL#\;08YJR:.[UP'MN2423W@1F&)3[ #
M^5)NN.JYEI*2 J@@C"(.QXDS]9]F8QUO GX0J,1-&VDG!\;.NO.<3AQ/"X(<
M$JD)6/U^0PQYKD%*QJ^&Z=@E=>)M^TK_9KPK+P<L(&;Y3Y+*;.*,')3"$5]R
MN675=VC\]#4O8;DP7U35L;VN@Y*+D*QHDI6"@M#ZCU^;?;A)\ =W$H(F(3"Z
MZX6,RCF6. HYJQ#7T8JF&\:JR5;B"-6'LI-<S1*5)Z/X9;=?+Q=;%*]7\6*U
MWT[WS^L5^CP'B4DNT ISCO7&?0E=J=;366[2L&<U.[C#]@.T9%1F BUH"NG?
M %<)M6J#J]I9T$J<0])!7?\K"KS ;^%UK?NNX?7NN6<T 2JU0W5#MD2<T0:X
M'E(7\E^&VW&^U_&\3RVZ>E97KQ6TIH!B<_C 6W!]B^L_UF8[[D.; ZMKT K:
M9QS>C8H6XM 2AX]UVH[K!1\X'5E=HW:G%?N? QU;W/BQ-MMQW<$]F^Y-95'2
M3Z9^"I2P"Y5UD;&CMD1/Z\KT'E[7]R7F)T(%RN&H4KW.4%TR7M?,NB-9:>K4
M@4FU3Z:9J6<&N Y0\T?&Y+6C%[ /5_0'4$L#!!0    ( #.+?52M ;$C7P0
M #D3   9    >&PO=V]R:W-H965T<R]S:&5E=#<U+GAM;*V8:V_;-A2&_\J!
MD $ML%DBY4M2. ;JQ%TW($T:+]F'81\8B;*(2*)*TG8"[,>7ND14,8FR@'Z1
M18GG/2]O#^2S/'+Q+&-*%;RD228OG5BI_(/KRB"F*9$3GM-,OXFX2(G23;%S
M92XH"<N@-'&QY\W=E+#,62W+9W=BM>1[E;",W@F0^S0EXG5-$WZ\=)#S]N">
M[6)5/'!7RYSLZ):JA_Q.Z);;J(0LI9ED/ -!HTOG(_JP]G$14/9X9/0H6_=0
M#.6)\^>B\4=XZ7B%(YK00!421/\<Z!5-DD))^_A6BSI-SB*P??^F_JD<O![,
M$Y'TBB=_LU#%E\ZY R&-R#Y1]_SXF=8#FA5Z 4]D>85CU7>V<"#82\73.E@[
M2%E6_9*7>B): 7Y? *X#RHEPJT2ERVNBR&HI^!%$T5NK%3?E4,MH;8YEQ:IL
ME=!OF8Y3J^W#>KOY^K#Y\A=L'O5U"^^NJ2(LD?"%"$&*.7L/O\%V_R3IMSW-
M%&P.^KITE<Y>:+A!G6E=9<(]F1#<\$S%$C992,,?XUWMNK&.WZROL57P3Y)-
MP$>_ O8P?MA>P[NS]V?@@HR)H+*Z6M+XS0SY99II3YJKF-$(-B\TV!>3 ;=1
MQ (JX)\;FCY1\:\EQ;1),;6FT.(B8))"+K1TU]16\8LROCAHAQ6:(+QT#QU9
M9TW6F37K;5Z>"\4AWXL@UEL;_H.N::LL5&*SMH4%GGE>MXEY8V)N-;%5/'@&
M7EDYD&1/0^WBK,M )31O&[CPL'_1;6#1&%B<;D!1D7:EMDL@#UXI$;;-=MZX
M.;=*/?)$'[F$J=<N&_98-$,3S_O%XN*B<7$QL!]S#4V]$B$[L)!F(;PRFH1=
MENQ"WH AY!E,>5:E>R:?(1*4 LOT*E&I0,.I\ZP,**')8F;UU$(GLBK]+HC&
M8:AM0$28J+8OY)H-Y2D"'D' TU3O*UELLDZOJ.M@=^]HA(TQ? *R;K43O9FR
MW1AD(8-%9.?B,+1J@=.HA0PLD9V6([E5J[7!-5OT<@L9>B([/D>0JU9JHVON
M3Y'?8\&P$XV 9Q^[!C1.@!<R+$5V$MKQ-1 \S"]D,(KL+!Q!L &E0809J"([
M#,<@S*XTA#!LL(KM,/P)"*LSG(0P;-B*[6RM$/:)920+&$G>$&8;M,$CMN-Q
MF%RUP&GDP@:9V([,D>2JU=KDFGI>'[FP 2BV W0$N6JE-KFF4]1'+FS@B4?
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
MQ5<TXOPZ+=9AS;J7_;Y!T^KV]6R?BF(FS@7EHDHWAZWZA[\97/P'4$L#!!0
M   ( #.+?51G_%)"3 (  &@L   :    >&PO7W)E;',O=V]R:V)O;VLN>&UL
M+G)E;'/-VDMNHT 4A>&M6"P@N.ZKDE:<44\RC;(!Y)0?BFT0T$JR^[:<@7U0
M#WH2<4:H0%S^"9\0\/A2#LVX;T_#;M\-B\_CX32LJMTX=K_J>ECORK$9[MJN
MG,Y'-FU_;,;SLM_67;-^;[:EEN4RZOYV1O7T>#MS\?K5E?^9V&XV^W7YW:[_
M',MI_,?@^J/MWX==*6.U>&WZ;1E75?UYN.X>ZLLFW9TG5XOGMU75/[^EJIX[
M2"!(Y@]2"-+Y@PR";/X@AR"?/R@@*.8/RA"4YP^ZAZ#[^8,>(.AA_J"T1!F7
M!$D3K FT3LAU(O Z(=B)0.R$9"<"LQ.BG0C43LAV(G [(=R)0.Z$="<"NQ/B
MG0CT%M1;"/06U%L(]);)PS:!WH)Z"X'>@GH+@=Z">@N!WH)Z"X'>@GH+@=Z"
M>@N!WH)Z"X'>BGHK@=Z*>BN!WHIZ*X'>.GE90J"WHMY*H+>BWDJ@MZ+>2J"W
MHMY*H+>BWDJ@MZ+>2J"WH=Y&H+>AWD:@MZ'>1J"WH=Y&H+=-7G83Z&VHMQ'H
M;:BW$>AMJ+<1Z&VHMQ'H;:BW$>CMJ+<3Z.VHMQ/H[:BW$^CMJ+<3Z.VHMQ/H
M[9./E01Z.^KM!'H[ZNT$>COJ[01Z.^KM!'H'ZAT$>@?J'01Z!^H=!'H'ZAT$
M>@?J'01Z!^H=!'K'Y&<3 KT#]0X"O0/U#@*] _4. KTSZIT)],ZH=R;0.Z/>
MF4#OC'IG KTSZIT)],ZH=_Y)O8?QZU"&:\_W&J__DU2/YW/+]?*7Y??.R0UU
MP;F^K1B>_@)02P,$%     @ ,XM]5(:F8T@, @  82L  !,   !;0V]N=&5N
M=%]4>7!E<UTN>&ULS=K-;N(P% 7@5T'95L3X-],1L)F9;8=%7\!-+B4BB2W;
M;>'MQPEMI58=-!4C]6R(P/8]-[[2MV)Y>_049X>^&^*JV*7DOS,6ZQWU-I;.
MTY!7MB[T-N6OX9YY6^_M/3&Q6!A6NR'1D.9IK%&LES]I:Q^Z-/MUR#_'U@VK
M(E 7B]F/T\8Q:U58[[NVMBFOL\>A>9<R?TXH\\EI3]RU/E[E#07[,&%<^7O
M\[G?CQ1"V]!L8T.ZL7W>Q0X=B^G842S/E_B@1[?=MC4UKG[H\Y$R^D"VB3NB
MU'?EJ>C5^>24;YA.G_SB_*G,N<"\<Q.<CWEB@3X?]S*2\?3<YT(44GO^%5\3
M<^F+WX_&:3?4_&-VOMXG%_;3/"*;'I??\=L9O];_9!\"I \)TH<"Z4.#]&%
M^JA ^O@&TL<U2!]\@=((BJ@<A52.8BI'096CJ,I16.4HKG(46#F*K )%5H$B
MJT"15:#(*E!D%2BR"A19!8JL D56@2*K1)%5HL@J4625*+)*%%DEBJP215:)
M(JM$D56BR*I09%4HLBH4616*K I%5H4BJT*15:'(JE!D52BR:A19-8JL&D56
MC2*K1I%5H\BJ4635*+)J%%DUBJP&15:#(JM!D=6@R&I09#4HLAH460V*K 9%
M5H,B:X4B:X4B:X4B:X4B:X4B:_65LMXYM__/\=.S[&T[O.2SZ9^UZS]02P$"
M% ,4    "  SBWU4!T%-8H$   "Q    $               @ $     9&]C
M4')O<',O87!P+GAM;%!+ 0(4 Q0    ( #.+?51#LH6.[0   "L"   1
M          "  :\   !D;V-0<F]P<R]C;W)E+GAM;%!+ 0(4 Q0    ( #.+
M?5297)PC$ 8  )PG   3              "  <L!  !X;"]T:&5M92]T:&5M
M93$N>&UL4$L! A0#%     @ ,XM]5"-#K[P&!@  /AD  !@
M ("!# @  'AL+W=O<FMS:&5E=',O<VAE970Q+GAM;%!+ 0(4 Q0    ( #.+
M?53/G%=C\P8  #L=   8              " @4@.  !X;"]W;W)K<VAE971S
M+W-H965T,BYX;6Q02P$"% ,4    "  SBWU4C3=#TTX#  !3#@  &
M        @(%Q%0  >&PO=V]R:W-H965T<R]S:&5E=#,N>&UL4$L! A0#%
M  @ ,XM]5&@FM-%J!0  5!0  !@              ("!]1@  'AL+W=O<FMS
M:&5E=',O<VAE970T+GAM;%!+ 0(4 Q0    ( #.+?53> PQ3804  !D6   8
M              " @94>  !X;"]W;W)K<VAE971S+W-H965T-2YX;6Q02P$"
M% ,4    "  SBWU4Y'>>]2((  "G(0  &               @($L)   >&PO
M=V]R:W-H965T<R]S:&5E=#8N>&UL4$L! A0#%     @ ,XM]5#9>85:H!0
M^@L  !@              ("!A"P  'AL+W=O<FMS:&5E=',O<VAE970W+GAM
M;%!+ 0(4 Q0    ( #.+?511:0X'="$  .)E   8              " @6(R
M  !X;"]W;W)K<VAE971S+W-H965T."YX;6Q02P$"% ,4    "  SBWU4GQG<
MI4L"  #Y!   &               @($,5   >&PO=V]R:W-H965T<R]S:&5E
M=#DN>&UL4$L! A0#%     @ ,XM]5&_1W*PR @  XP0  !D
M ("!C58  'AL+W=O<FMS:&5E=',O<VAE970Q,"YX;6Q02P$"% ,4    "  S
MBWU4:K(<[H0#  "-!P  &0              @('V6   >&PO=V]R:W-H965T
M<R]S:&5E=#$Q+GAM;%!+ 0(4 Q0    ( #.+?51/>=,KA0,  "\(   9
M          " @;%<  !X;"]W;W)K<VAE971S+W-H965T,3(N>&UL4$L! A0#
M%     @ ,XM]5!4&]\K/!0  .0X  !D              ("!;6   'AL+W=O
M<FMS:&5E=',O<VAE970Q,RYX;6Q02P$"% ,4    "  SBWU4'ZG1:>@"  ",
M!@  &0              @(%S9@  >&PO=V]R:W-H965T<R]S:&5E=#$T+GAM
M;%!+ 0(4 Q0    ( #.+?52GY<6D9@,  *H'   9              " @9)I
M  !X;"]W;W)K<VAE971S+W-H965T,34N>&UL4$L! A0#%     @ ,XM]5+["
M<QUN#@  ?C\  !D              ("!+VT  'AL+W=O<FMS:&5E=',O<VAE
M970Q-BYX;6Q02P$"% ,4    "  SBWU4)_!8)<P$  "C"@  &0
M    @('4>P  >&PO=V]R:W-H965T<R]S:&5E=#$W+GAM;%!+ 0(4 Q0    (
M #.+?51=7VWUT @  +<6   9              " @=>   !X;"]W;W)K<VAE
M971S+W-H965T,3@N>&UL4$L! A0#%     @ ,XM]5!372/#L @  8P8  !D
M             ("!WHD  'AL+W=O<FMS:&5E=',O<VAE970Q.2YX;6Q02P$"
M% ,4    "  SBWU4'<RTZ# #   0!P  &0              @($!C0  >&PO
M=V]R:W-H965T<R]S:&5E=#(P+GAM;%!+ 0(4 Q0    ( #.+?506-<@BTP,
M /\'   9              " @6B0  !X;"]W;W)K<VAE971S+W-H965T,C$N
M>&UL4$L! A0#%     @ ,XM]5'R])&?L"0  <1D  !D              ("!
M<I0  'AL+W=O<FMS:&5E=',O<VAE970R,BYX;6Q02P$"% ,4    "  SBWU4
M$GP,?9T"   M!@  &0              @(&5G@  >&PO=V]R:W-H965T<R]S
M:&5E=#(S+GAM;%!+ 0(4 Q0    ( #.+?51G_U,2PP,  #,,   9
M      " @6FA  !X;"]W;W)K<VAE971S+W-H965T,C0N>&UL4$L! A0#%
M  @ ,XM]5-3&XO:V(@  +&\  !D              ("!8Z4  'AL+W=O<FMS
M:&5E=',O<VAE970R-2YX;6Q02P$"% ,4    "  SBWU4GV@R R\$  !8"@
M&0              @(%0R   >&PO=V]R:W-H965T<R]S:&5E=#(V+GAM;%!+
M 0(4 Q0    ( #.+?53:;U)M. (  ,,$   9              " @;;,  !X
M;"]W;W)K<VAE971S+W-H965T,C<N>&UL4$L! A0#%     @ ,XM]5',-@/WN
M @   @8  !D              ("!)<\  'AL+W=O<FMS:&5E=',O<VAE970R
M."YX;6Q02P$"% ,4    "  SBWU4.M\0-?,"  !B!P  &0
M@(%*T@  >&PO=V]R:W-H965T<R]S:&5E=#(Y+GAM;%!+ 0(4 Q0    ( #.+
M?53=2?O=^0,  "0+   9              " @735  !X;"]W;W)K<VAE971S
M+W-H965T,S N>&UL4$L! A0#%     @ ,XM]5([PO-UG @  . 4  !D
M         ("!I-D  'AL+W=O<FMS:&5E=',O<VAE970S,2YX;6Q02P$"% ,4
M    "  SBWU41:EO*I4$   X#0  &0              @(%"W   >&PO=V]R
M:W-H965T<R]S:&5E=#,R+GAM;%!+ 0(4 Q0    ( #.+?53P0*K;-P(  /P$
M   9              " @0[A  !X;"]W;W)K<VAE971S+W-H965T,S,N>&UL
M4$L! A0#%     @ ,XM]5"&XBW35 @  XP4  !D              ("!?.,
M 'AL+W=O<FMS:&5E=',O<VAE970S-"YX;6Q02P$"% ,4    "  SBWU4;[A!
M>UX"  !!!0  &0              @(&(Y@  >&PO=V]R:W-H965T<R]S:&5E
M=#,U+GAM;%!+ 0(4 Q0    ( #.+?50K86I L@0  %(,   9
M  " @1WI  !X;"]W;W)K<VAE971S+W-H965T,S8N>&UL4$L! A0#%     @
M,XM]5,6=_ =. P  ]@D  !D              ("!!NX  'AL+W=O<FMS:&5E
M=',O<VAE970S-RYX;6Q02P$"% ,4    "  SBWU49\WJ0X\#  !8#0  &0
M            @(&+\0  >&PO=V]R:W-H965T<R]S:&5E=#,X+GAM;%!+ 0(4
M Q0    ( #.+?50SOTP_J@,  (P-   9              " @5'U  !X;"]W
M;W)K<VAE971S+W-H965T,SDN>&UL4$L! A0#%     @ ,XM]5 KT$PV>!0
MN!8  !D              ("!,OD  'AL+W=O<FMS:&5E=',O<VAE970T,"YX
M;6Q02P$"% ,4    "  SBWU4/.S#KBD"  !U!0  &0              @($'
M_P  >&PO=V]R:W-H965T<R]S:&5E=#0Q+GAM;%!+ 0(4 Q0    ( #.+?505
M(0'1\ $  & $   9              " @6<! 0!X;"]W;W)K<VAE971S+W-H
M965T-#(N>&UL4$L! A0#%     @ ,XM]5#T'3(U2 P  70H  !D
M     ("!C@,! 'AL+W=O<FMS:&5E=',O<VAE970T,RYX;6Q02P$"% ,4
M"  SBWU4^?C"A%P"  "W!0  &0              @($7!P$ >&PO=V]R:W-H
M965T<R]S:&5E=#0T+GAM;%!+ 0(4 Q0    ( #.+?515HI>,40(  +(%   9
M              " @:H) 0!X;"]W;W)K<VAE971S+W-H965T-#4N>&UL4$L!
M A0#%     @ ,XM]5$WTIO$: @  \ 0  !D              ("!,@P! 'AL
M+W=O<FMS:&5E=',O<VAE970T-BYX;6Q02P$"% ,4    "  SBWU4^ U@QCL"
M  "&!@  &0              @(&##@$ >&PO=V]R:W-H965T<R]S:&5E=#0W
M+GAM;%!+ 0(4 Q0    ( #.+?50R.>E(*0(  /D$   9              "
M@?40 0!X;"]W;W)K<VAE971S+W-H965T-#@N>&UL4$L! A0#%     @ ,XM]
M5+@[=HAP @  I08  !D              ("!51,! 'AL+W=O<FMS:&5E=',O
M<VAE970T.2YX;6Q02P$"% ,4    "  SBWU4HLI4!A<"  #?!   &0
M        @('\%0$ >&PO=V]R:W-H965T<R]S:&5E=#4P+GAM;%!+ 0(4 Q0
M   ( #.+?534=76M-0(  .\%   9              " @4H8 0!X;"]W;W)K
M<VAE971S+W-H965T-3$N>&UL4$L! A0#%     @ ,XM]5 /#@18W @  #P4
M !D              ("!MAH! 'AL+W=O<FMS:&5E=',O<VAE970U,BYX;6Q0
M2P$"% ,4    "  SBWU4C'3Z[N@"  "+"0  &0              @($D'0$
M>&PO=V]R:W-H965T<R]S:&5E=#4S+GAM;%!+ 0(4 Q0    ( #.+?52"Z^O8
MN0(  +('   9              " @4,@ 0!X;"]W;W)K<VAE971S+W-H965T
M-30N>&UL4$L! A0#%     @ ,XM]5+K?,S5> @  ^ 4  !D
M ("!,R,! 'AL+W=O<FMS:&5E=',O<VAE970U-2YX;6Q02P$"% ,4    "  S
MBWU469+KAE "  !$!0  &0              @('()0$ >&PO=V]R:W-H965T
M<R]S:&5E=#4V+GAM;%!+ 0(4 Q0    ( #.+?50_PY_0Q (  /P'   9
M          " @4\H 0!X;"]W;W)K<VAE971S+W-H965T-3<N>&UL4$L! A0#
M%     @ ,XM]5&$L$S)' P  2PL  !D              ("!2BL! 'AL+W=O
M<FMS:&5E=',O<VAE970U."YX;6Q02P$"% ,4    "  SBWU4N6..ZUP$  "]
M&0  &0              @('(+@$ >&PO=V]R:W-H965T<R]S:&5E=#4Y+GAM
M;%!+ 0(4 Q0    ( #.+?53F?J8"A@,  )4,   9              " @5LS
M 0!X;"]W;W)K<VAE971S+W-H965T-C N>&UL4$L! A0#%     @ ,XM]5!Z2
M64O+!0  OR@  !D              ("!&#<! 'AL+W=O<FMS:&5E=',O<VAE
M970V,2YX;6Q02P$"% ,4    "  SBWU4'<Y$"M4-   W5@  &0
M    @($:/0$ >&PO=V]R:W-H965T<R]S:&5E=#8R+GAM;%!+ 0(4 Q0    (
M #.+?52(I3+J_0$  &\$   9              " @29+ 0!X;"]W;W)K<VAE
M971S+W-H965T-C,N>&UL4$L! A0#%     @ ,XM]5-W+R4 = @  K@4  !D
M             ("!6DT! 'AL+W=O<FMS:&5E=',O<VAE970V-"YX;6Q02P$"
M% ,4    "  SBWU4$EC4 [@$   ]$@  &0              @(&N3P$ >&PO
M=V]R:W-H965T<R]S:&5E=#8U+GAM;%!+ 0(4 Q0    ( #.+?52]D0, &@,
M (H)   9              " @9U4 0!X;"]W;W)K<VAE971S+W-H965T-C8N
M>&UL4$L! A0#%     @ ,XM]5"NJ!/R+ @    <  !D              ("!
M[E<! 'AL+W=O<FMS:&5E=',O<VAE970V-RYX;6Q02P$"% ,4    "  SBWU4
M[](S"*H"  "C!@  &0              @(&P6@$ >&PO=V]R:W-H965T<R]S
M:&5E=#8X+GAM;%!+ 0(4 Q0    ( #.+?50;!,?$R@(  +X)   9
M      " @9%= 0!X;"]W;W)K<VAE971S+W-H965T-CDN>&UL4$L! A0#%
M  @ ,XM]5%)H]2]+ @  "P8  !D              ("!DF ! 'AL+W=O<FMS
M:&5E=',O<VAE970W,"YX;6Q02P$"% ,4    "  SBWU4091HGKX#  #&"P
M&0              @($48P$ >&PO=V]R:W-H965T<R]S:&5E=#<Q+GAM;%!+
M 0(4 Q0    ( #.+?51V#!XV8 ,   8,   9              " @0EG 0!X
M;"]W;W)K<VAE971S+W-H965T-S(N>&UL4$L! A0#%     @ ,XM]5*;\$=J(
M @  V 8  !D              ("!H&H! 'AL+W=O<FMS:&5E=',O<VAE970W
M,RYX;6Q02P$"% ,4    "  SBWU4.$5\&SX"  #$!@  &0
M@(%?;0$ >&PO=V]R:W-H965T<R]S:&5E=#<T+GAM;%!+ 0(4 Q0    ( #.+
M?52M ;$C7P0  #D3   9              " @=1O 0!X;"]W;W)K<VAE971S
M+W-H965T-S4N>&UL4$L! A0#%     @ ,XM]5#P;5<$$ P  +1    T
M         ( !:G0! 'AL+W-T>6QE<RYX;6Q02P$"% ,4    "  SBWU4EXJ[
M',     3 @  "P              @ &9=P$ 7W)E;',O+G)E;'-02P$"% ,4
M    "  SBWU4X\RLUG$%  #J,   #P              @ &"> $ >&PO=V]R
M:V)O;VLN>&UL4$L! A0#%     @ ,XM]5&?\4D), @  :"P  !H
M     ( !('X! 'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS4$L! A0#%
M  @ ,XM]5(:F8T@, @  82L  !,              ( !I( ! %M#;VYT96YT
A7U1Y<&5S72YX;6Q02P4&     %, 4P"\%@  X8(!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>98
<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>99
<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>100
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.22.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>168</ContextCount>
  <ElementCount>402</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>67</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 - LOAN PAYABLE</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LoanPayable</Role>
      <ShortName>LOAN PAYABLE</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 - INCOME TAXES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IncomeTaxes</Role>
      <ShortName>INCOME TAXES</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 - CUSTOMER CONCENTRATION</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CustomerConcentration</Role>
      <ShortName>CUSTOMER CONCENTRATION</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 - SUBSEQUENT EVENTS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SubsequentEvents</Role>
      <ShortName>SUBSEQUENT EVENTS</ShortName>
      <MenuCategory>Notes</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 (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>000026 - 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>26</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>000027 - 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>27</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>000028 - 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>28</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>000029 - 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>29</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>000030 - 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>30</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>000031 - 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>31</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>000032 - Disclosure - HAREHOLDERS' EQUITY (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/HareholdersEquityTables</Role>
      <ShortName>HAREHOLDERS' EQUITY (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>000033 - 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>33</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>000034 - 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>34</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>000035 - 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>35</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>000036 - 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>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)</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>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 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>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 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>39</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>000040 - 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>40</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>000041 - 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>41</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>000042 - 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>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)</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>43</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>000044 - 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>44</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>000045 - 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>45</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>000046 - 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>46</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>000047 - 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>47</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>000048 - 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>48</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>000049 - 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>49</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>000050 - 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>50</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>000051 - 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>51</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>000052 - 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>52</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>000053 - 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>53</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>000054 - 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>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)</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>55</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>000056 - 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>56</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>000057 - 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>57</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>000058 - Disclosure - SHAREHOLDERS EQUITY (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <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 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails1</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <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 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails2</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <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 3)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails3</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details 3)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>000062 - 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>
      <Position>62</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>000063 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative</Role>
      <ShortName>COMMITMENTS AND CONTINGENCIES (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/CommitmentsAndContingencies</ParentRole>
      <Position>63</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>000064 - 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>64</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>000065 - 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>65</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>000066 - 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>66</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>000067 - 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>67</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>000068 - Disclosure - LOAN PAYABLE (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LoanPayableDetailsNarrative</Role>
      <ShortName>LOAN PAYABLE (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LoanPayable</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)</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>69</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>000070 - 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>70</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>000071 - 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>71</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>000072 - 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>72</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>000073 - 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>73</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>000074 - 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>74</Position>
    </Report>
    <Report instance="tomz_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>000075 - 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>75</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-K" original="tomz_10k.htm">tomz_10k.htm</File>
    <File>tomz-20211231.xsd</File>
    <File>tomz-20211231_cal.xml</File>
    <File>tomz-20211231_def.xml</File>
    <File>tomz-20211231_lab.xml</File>
    <File>tomz-20211231_pre.xml</File>
    <File>tomz_ex211.htm</File>
    <File>tomz_ex311.htm</File>
    <File>tomz_ex312.htm</File>
    <File>tomz_ex321.htm</File>
    <File>tomz_ex42.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>tomz_10kimg10.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="712">http://fasb.org/us-gaap/2021-01-31</BaseTaxonomy>
    <BaseTaxonomy items="35">http://xbrl.sec.gov/dei/2021q4</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>103
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "tomz_10k.htm": {
   "axisCustom": 0,
   "axisStandard": 15,
   "contextCount": 168,
   "dts": {
    "calculationLink": {
     "local": [
      "tomz-20211231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "tomz-20211231_def.xml"
     ]
    },
    "inline": {
     "local": [
      "tomz_10k.htm"
     ]
    },
    "labelLink": {
     "local": [
      "tomz-20211231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "tomz-20211231_pre.xml"
     ]
    },
    "schema": {
     "local": [
      "tomz-20211231.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/2021/elts/srt-2021-01-31.xsd",
      "https://xbrl.fasb.org/srt/2021/elts/srt-roles-2021-01-31.xsd",
      "https://xbrl.fasb.org/srt/2021/elts/srt-types-2021-01-31.xsd",
      "https://xbrl.fasb.org/us-gaap/2021/elts/us-gaap-2021-01-31.xsd",
      "https://xbrl.fasb.org/us-gaap/2021/elts/us-roles-2021-01-31.xsd",
      "https://xbrl.fasb.org/us-gaap/2021/elts/us-types-2021-01-31.xsd",
      "https://xbrl.sec.gov/country/2021/country-2021.xsd",
      "https://xbrl.sec.gov/currency/2021/currency-2021.xsd",
      "https://xbrl.sec.gov/dei/2021q4/dei-2021q4.xsd",
      "https://xbrl.sec.gov/exch/2021/exch-2021.xsd",
      "https://xbrl.sec.gov/naics/2021/naics-2021.xsd",
      "https://xbrl.sec.gov/sic/2021/sic-2021.xsd",
      "https://xbrl.sec.gov/stpr/2021/stpr-2021.xsd"
     ]
    }
   },
   "elementCount": 557,
   "entityCount": 1,
   "hidden": {
    "http://fasb.org/us-gaap/2021-01-31": 35,
    "http://tomz.com/20211231": 4,
    "http://xbrl.sec.gov/dei/2021q4": 5,
    "total": 44
   },
   "keyCustom": 98,
   "keyStandard": 304,
   "memberCustom": 53,
   "memberStandard": 14,
   "nsprefix": "tomz",
   "nsuri": "http://tomz.com/20211231",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "strong",
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/Cover",
     "shortName": "Cover",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "strong",
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/VendorDeposits",
     "shortName": "VENDOR DEPOSITS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/PropertyAndEquipment",
     "shortName": "PROPERTY AND EQUIPMENT",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/IntangibleAssets",
     "shortName": "INTANGIBLE ASSETS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/LEASES",
     "shortName": "LEASES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts",
     "shortName": "CAPITALIZED SOFTWARE DEVELOPMENT COSTS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/CloudComputingServiceContract",
     "shortName": "CLOUD COMPUTING SERVICE CONTRACT",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/ShareholdersEquity",
     "shortName": "SHAREHOLDERS' EQUITY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/CommitmentsAndContingencies",
     "shortName": "COMMITMENTS AND CONTINGENCIES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/ContractsAndAgreements",
     "shortName": "CONTRACTS AND AGREEMENTS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities",
     "shortName": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "AsOf2021-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",
     "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": "AsOf2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/AccruedWarranty",
     "shortName": "ACCRUED WARRANTY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:LoansPayableDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000021 - Disclosure - LOAN PAYABLE",
     "role": "http://tomz.com/role/LoanPayable",
     "shortName": "LOAN PAYABLE",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:LoansPayableDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000022 - Disclosure - INCOME TAXES",
     "role": "http://tomz.com/role/IncomeTaxes",
     "shortName": "INCOME TAXES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000023 - Disclosure - CUSTOMER CONCENTRATION",
     "role": "http://tomz.com/role/CustomerConcentration",
     "shortName": "CUSTOMER CONCENTRATION",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConcentrationRiskDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000024 - Disclosure - SUBSEQUENT EVENTS",
     "role": "http://tomz.com/role/SubsequentEvents",
     "shortName": "SUBSEQUENT EVENTS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000025 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:EarningsPerSharePolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000026 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:EarningsPerSharePolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000027 - Disclosure - INVENTORIES (Tables)",
     "role": "http://tomz.com/role/InventoriesTables",
     "shortName": "INVENTORIES (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000028 - Disclosure - PROPERTY AND EQUIPMENT (Tables)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000029 - Disclosure - INTANGIBLE ASSETS (Tables)",
     "role": "http://tomz.com/role/IntangibleAssetsTables",
     "shortName": "INTANGIBLE ASSETS (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-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)",
     "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": "AsOf2021-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:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000030 - Disclosure - LEASES (Tables)",
     "role": "http://tomz.com/role/LeasesTables",
     "shortName": "LEASES (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeaseCostTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000031 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Tables)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000032 - Disclosure - HAREHOLDERS' EQUITY (Tables)",
     "role": "http://tomz.com/role/HareholdersEquityTables",
     "shortName": "HAREHOLDERS' EQUITY (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000033 - Disclosure - CONTRACTS AND AGREEMENTS (Tables)",
     "role": "http://tomz.com/role/ContractsAndAgreementsTables",
     "shortName": "CONTRACTS AND AGREEMENTS (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000034 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:GuaranteesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000035 - Disclosure - ACCRUED WARRANTY (Tables)",
     "role": "http://tomz.com/role/AccruedWarrantyTables",
     "shortName": "ACCRUED WARRANTY (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:GuaranteesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000036 - Disclosure - INCOME TAXES (Tables)",
     "role": "http://tomz.com/role/IncomeTaxesTables",
     "shortName": "INCOME TAXES (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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)",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ImpairmentEffectsOnEarningsPerShareTableTextBlock",
       "us-gaap:EarningsPerSharePolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "lang": null,
      "name": "tomz:InterestOnConvertibleDebt",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000038 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)",
     "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": "From2021-01-01to2021-12-31_tomz_DilutedNetIncomeorLossMember",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:Revenues",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000039 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31_us-gaap_DomesticCountryMember",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:Revenues",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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",
     "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": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:CostOfRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ReceivablesPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000040 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProvisionForDoubtfulAccounts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-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": "000041 - Disclosure - INVENTORIES (Details)",
     "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": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryFinishedGoods",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:DepositsAssetsCurrent",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000042 - Disclosure - VENDOR DEPOSITS (Details Narrative)",
     "role": "http://tomz.com/role/VendorDepositsDetailsNarrative",
     "shortName": "VENDOR DEPOSITS (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-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": "000043 - Disclosure - PROPERTY AND EQUIPMENT (Details)",
     "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": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FurnitureAndFixturesGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000044 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-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": "000045 - Disclosure - INTANGIBLE ASSETS (Details)",
     "role": "http://tomz.com/role/IntangibleAssetsDetails",
     "shortName": "INTANGIBLE ASSETS (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-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": "000046 - Disclosure - INTANGIBLE ASSETS (Details 1)",
     "role": "http://tomz.com/role/IntangibleAssetsDetails1",
     "shortName": "INTANGIBLE ASSETS (Details 1)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:IndefiniteLivedTrademarks",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-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": "000047 - Disclosure - INTANGIBLE ASSETS (Details 2)",
     "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": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000048 - Disclosure - INTANGIBLE ASSETS (Details Narrative)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000049 - Disclosure - LEASES (Details)",
     "role": "http://tomz.com/role/LeasesDetails",
     "shortName": "LEASES (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2019-12-31_us-gaap_CommonStockMember",
      "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",
     "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": "AsOf2019-12-31_us-gaap_CommonStockMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:SharesIssued",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:OperatingLeaseLiabilityTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000050 - Disclosure - LEASES (Details 1)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:LeaseOtherInformationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000051 - Disclosure - LEASES (Details 2)",
     "role": "http://tomz.com/role/LeasesDetails2",
     "shortName": "LEASES (Details 2)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:LeaseOtherInformationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000052 - Disclosure - LEASES (Details 3)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-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": "000053 - Disclosure - LEASES (Details 4)",
     "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": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000054 - Disclosure - LEASES (Details Narrative)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tomz:TermLease",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:CapitalizedSoftwareDevelopmentCostsTableTextBlock",
       "us-gaap:ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-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": "000055 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details)",
     "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": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CapitalizedComputerSoftwareGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CapitalizedComputerSoftwareAmortization1",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000056 - Disclosure - CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)",
     "role": "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative",
     "shortName": "CAPITALIZED SOFTWARE DEVELOPMENT COSTS (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R57": {
     "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": "000057 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)",
     "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"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000058 - Disclosure - SHAREHOLDERS EQUITY (Details)",
     "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": "From2021-01-01to2021-12-31_tomz_StockWarrantMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:OutstandingBeginningOfPeriod",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-12-31",
      "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 1)",
     "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": "AsOf2021-12-31_tomz_RangeFourMember",
      "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": "From2021-01-01to2021-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",
     "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": "From2021-01-01to2021-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",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000060 - Disclosure - SHAREHOLDERS EQUITY (Details 2)",
     "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": "AsOf2019-12-31_tomz_WarrantsMember",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
      "reportCount": 1,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000061 - Disclosure - SHAREHOLDERS EQUITY (Details 3)",
     "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": "AsOf2021-12-31_tomz_WarrantsOneMember",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityReverseStockSplit",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000062 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)",
     "role": "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
     "shortName": "SHAREHOLDERS EQUITY (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityReverseStockSplit",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": null,
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000063 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details Narrative)",
     "role": "http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative",
     "shortName": "COMMITMENTS AND CONTINGENCIES (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-09-30",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractualObligationDueInNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000064 - Disclosure - CONTRACTS AND AGREEMENTS (Details)",
     "role": "http://tomz.com/role/ContractsAndAgreementsDetails",
     "shortName": "CONTRACTS AND AGREEMENTS (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:ApproximateMinimumContractPaymentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-09-30",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ContractualObligationDueInNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000065 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)",
     "role": "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
     "shortName": "CONTRACTS AND AGREEMENTS (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2017-12-01to2017-12-31_tomz_BoardOfMembersMember",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:PaymentForManagementFee",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-09-30",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000066 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)",
     "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": "AsOf2021-09-30",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "us-gaap:GuaranteesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2020-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ExtendedProductWarrantyAccrual",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000067 - Disclosure - ACCRUED WARRANTY (Details)",
     "role": "http://tomz.com/role/AccruedWarrantyDetails",
     "shortName": "ACCRUED WARRANTY (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "us-gaap:GuaranteesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2019-12-31",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:ExtendedProductWarrantyAccrual",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "tomz:LoansPayableDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2020-04-21",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:ProceedsFromLoanFundingPaycheckProtectionProgram",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000068 - Disclosure - LOAN PAYABLE (Details Narrative)",
     "role": "http://tomz.com/role/LoanPayableDetailsNarrative",
     "shortName": "LOAN PAYABLE (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "tomz:LoansPayableDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2020-04-21",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:ProceedsFromLoanFundingPaycheckProtectionProgram",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "000069 - Disclosure - INCOME TAXES (Details)",
     "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": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/DescriptionOfBusiness",
     "shortName": "DESCRIPTION OF BUSINESS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NatureOfOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2020-01-01to2020-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": "000070 - Disclosure - INCOME TAXES (Details 1)",
     "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": "From2020-01-01to2020-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:IncomeLossBeforeIncomeTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000071 - Disclosure - INCOME TAXES (Details 2)",
     "role": "http://tomz.com/role/IncomeTaxesDetails2",
     "shortName": "INCOME TAXES (Details 2)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "tomz:IncomeLossBeforeIncomeTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000072 - Disclosure - INCOME TAXES (Details 3)",
     "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": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R73": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2021-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": "000073 - Disclosure - INCOME TAXES (Details Narrative)",
     "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": "AsOf2021-12-31",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLossCarryforwards",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R74": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "reportCount": 1,
      "unitRef": "Pure",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000074 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)",
     "role": "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
     "shortName": "CUSTOMER CONCENTRATION (Details Narrative)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31_tomz_OneCustomerMember",
      "decimals": "INF",
      "lang": null,
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     }
    },
    "R75": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:SubsequentEventsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USDPShares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000075 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)",
     "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": "AsOf2022-01-31_us-gaap_SubsequentEventMember_srt_ChiefExecutiveOfficerMember",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USDPShares",
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPolicies",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-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": "From2021-01-01to2021-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",
     "role": "http://tomz.com/role/INVENTORIES",
     "shortName": "INVENTORIES",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "tomz_10k.htm",
      "contextRef": "From2021-01-01to2021-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 67,
   "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AuditorFirmId": {
     "auth_ref": [
      "r455",
      "r456",
      "r457"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "PCAOB issued Audit Firm Identifier",
        "label": "Auditor Firm Id"
       }
      }
     },
     "localname": "AuditorFirmId",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "nonemptySequenceNumberItemType"
    },
    "dei_AuditorLocation": {
     "auth_ref": [
      "r455",
      "r456",
      "r457"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Location"
       }
      }
     },
     "localname": "AuditorLocation",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_AuditorName": {
     "auth_ref": [
      "r455",
      "r456",
      "r457"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Name"
       }
      }
     },
     "localname": "AuditorName",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "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/2021q4",
     "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/2021q4",
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentAnnualReport": {
     "auth_ref": [
      "r455",
      "r456",
      "r457"
     ],
     "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/2021q4",
     "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/2021q4",
     "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/2021q4",
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentTransitionReport": {
     "auth_ref": [
      "r458"
     ],
     "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/2021q4",
     "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/2021q4",
     "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/2021q4",
     "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/2021q4",
     "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/2021q4",
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r453"
     ],
     "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/2021q4",
     "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/2021q4",
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r453"
     ],
     "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/2021q4",
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r453"
     ],
     "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/2021q4",
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r460"
     ],
     "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/2021q4",
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r453"
     ],
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r453"
     ],
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r453"
     ],
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r453"
     ],
     "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/2021q4",
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [
      "r461"
     ],
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r452"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of a 12(b) registered security.",
        "label": "Security 12b Title"
       }
      }
     },
     "localname": "Security12bTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r454"
     ],
     "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/2021q4",
     "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/2021q4",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "xbrltype": "tradingSymbolItemType"
    },
    "srt_BoardOfDirectorsChairmanMember": {
     "auth_ref": [
      "r185"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Board of Directors Chairman"
       }
      }
     },
     "localname": "BoardOfDirectorsChairmanMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ChiefExecutiveOfficerMember": {
     "auth_ref": [
      "r185"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Chief Executive Officer [Member]"
       }
      }
     },
     "localname": "ChiefExecutiveOfficerMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ChiefFinancialOfficerMember": {
     "auth_ref": [
      "r185"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Chief Financial Officer"
       }
      }
     },
     "localname": "ChiefFinancialOfficerMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ChiefOperatingOfficerMember": {
     "auth_ref": [
      "r185",
      "r380"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Chief Operating Officer [Member]"
       }
      }
     },
     "localname": "ChiefOperatingOfficerMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_DirectorMember": {
     "auth_ref": [
      "r185"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Director [Member]"
       }
      }
     },
     "localname": "DirectorMember",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MajorCustomersAxis": {
     "auth_ref": [
      "r184",
      "r278",
      "r279",
      "r435"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Major Customers Axis"
       }
      }
     },
     "localname": "MajorCustomersAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_NameOfMajorCustomerDomain": {
     "auth_ref": [
      "r184",
      "r278",
      "r279",
      "r435"
     ],
     "localname": "NameOfMajorCustomerDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_TitleOfIndividualAxis": {
     "auth_ref": [
      "r185",
      "r380"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title Of Individual Axis"
       }
      }
     },
     "localname": "TitleOfIndividualAxis",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "auth_ref": [],
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "nsuri": "http://fasb.org/srt/2021-01-31",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_AccruedEquityCompensation": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Equity Compensation"
       }
      }
     },
     "localname": "AccruedEquityCompensation",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_AggregateCashConsideration": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate cash consideration"
       }
      }
     },
     "localname": "AggregateCashConsideration",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_AmortizationOfTenantImprovementAllowance": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization of Tenant Improvement Allowance"
       }
      }
     },
     "localname": "AmortizationOfTenantImprovementAllowance",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_AprilTwentyTwentyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "April 2020 [Member]"
       }
      }
     },
     "localname": "AprilTwentyTwentyMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_Basic": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Basic]",
        "verboseLabel": "Basic"
       }
      }
     },
     "localname": "Basic",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_CapitalizedPatentAndTrademarkCosts": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 22.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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_CloudComputingServiceContractDisclosureTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "9. CLOUD COMPUTING SERVICE CONTRACT"
       }
      }
     },
     "localname": "CloudComputingServiceContractDisclosureTextBlock",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_CommonStockSharesFullyVestedAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock shares fully vested, amount"
       }
      }
     },
     "localname": "CommonStockSharesFullyVestedAmount",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock shares issued upon conversion of convertible notes payable, amount"
       }
      }
     },
     "localname": "CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableAmount",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock shares issued upon conversion of convertible notes payable, shares"
       }
      }
     },
     "localname": "CommonStockSharesIssuedUponConversionOfConvertibleNotesPayableShares",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_CommonStockSharesIssuedUponExerciseOfOptionAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock shares issued upon exercise of option, amount"
       }
      }
     },
     "localname": "CommonStockSharesIssuedUponExerciseOfOptionAmount",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_CommonStockSharesIssuedUponExerciseOfOptionShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock shares issued upon exercise of option, shares"
       }
      }
     },
     "localname": "CommonStockSharesIssuedUponExerciseOfOptionShares",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_ComputerSoftware": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/PropertyAndEquipmentDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Computer and Software"
       }
      }
     },
     "localname": "ComputerSoftware",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ContractsAndAgreementsTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contracts and agreements text block.",
        "label": "12. CONTRACTS AND AGREEMENTS"
       }
      }
     },
     "localname": "ContractsAndAgreementsTextBlock",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_ConversionOfNotesPayableIntoCommonStockAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Conversion of Notes Payable into Common Stock, amount"
       }
      }
     },
     "localname": "ConversionOfNotesPayableIntoCommonStockAmount",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ConversionOfNotesPayableIntoCommonStockShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Conversion of Notes Payable into Common Stock, shares"
       }
      }
     },
     "localname": "ConversionOfNotesPayableIntoCommonStockShares",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_DebtInstrumentIncreasesAccruedInterest": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 19.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Increase for accrued, but unpaid interest on the debt instrument for the period.",
        "label": "Accrued Interest"
       }
      }
     },
     "localname": "DebtInstrumentIncreasesAccruedInterest",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_DilutedNetIncomeorLossMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Diluted Net Income or Loss [Member]"
       }
      }
     },
     "localname": "DilutedNetIncomeorLossMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_DirectorFeesCurrentAndNoncurrent": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Director Fees"
       }
      }
     },
     "localname": "DirectorFeesCurrentAndNoncurrent",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_EquipmentNetTransferredToInventory": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Equipment, net Transferred to Inventory"
       }
      }
     },
     "localname": "EquipmentNetTransferredToInventory",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_Equipments": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/PropertyAndEquipmentDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Equipment"
       }
      }
     },
     "localname": "Equipments",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_EquityCompensationExpense": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Compensation Expense"
       }
      }
     },
     "localname": "EquityCompensationExpense",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ExercisePrice": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Exercise price]",
        "verboseLabel": "Exercise price"
       }
      }
     },
     "localname": "ExercisePrice",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_ExercisePriceOfWarrant": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercise price of warrant"
       }
      }
     },
     "localname": "ExercisePriceOfWarrant",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_FairValueOfStockWarrant": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair value of stock warrant"
       }
      }
     },
     "localname": "FairValueOfStockWarrant",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_GainsLossOnExtinguishmentOfDebt": {
     "auth_ref": [],
     "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 on extinguishment debt"
       }
      }
     },
     "localname": "GainsLossOnExtinguishmentOfDebt",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/LoanPayableDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_GrantDateFairValuePerShareOfCommonStock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Grant date fair value per share of common stock"
       }
      }
     },
     "localname": "GrantDateFairValuePerShareOfCommonStock",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_IncreaseDecreaseInLeaseLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 21.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Lease Liability"
       }
      }
     },
     "localname": "IncreaseDecreaseInLeaseLiabilities",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_InterestOnConvertibleDebt": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest on convertible debt"
       }
      }
     },
     "localname": "InterestOnConvertibleDebt",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_InternationalMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "International"
       }
      }
     },
     "localname": "InternationalMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_IssuanceOfOptionToPurchaseSharesOfCommonStock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issuance of option to purchase shares of common stock"
       }
      }
     },
     "localname": "IssuanceOfOptionToPurchaseSharesOfCommonStock",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_IssuedWarrantsInConcurrentPlacementAgent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issued warrants in concurrent placement agent"
       }
      }
     },
     "localname": "IssuedWarrantsInConcurrentPlacementAgent",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_JulyTwentyTwentyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "July 2020 [Member]"
       }
      }
     },
     "localname": "JulyTwentyTwentyMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_JuneTwentyTwentyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "June 2020 [Member]"
       }
      }
     },
     "localname": "JuneTwentyTwentyMember",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_LoansPayableDisclosureTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "15. LOAN PAYABLE"
       }
      }
     },
     "localname": "LoansPayableDisclosureTextBlock",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/LoanPayable"
     ],
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_MarchTwentyTwentyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "March 2020 [Member]"
       }
      }
     },
     "localname": "MarchTwentyTwentyMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_MaximumIncreasesRentPercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increases rent percentage escalation clause"
       }
      }
     },
     "localname": "MaximumIncreasesRentPercentage",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "tomz_MayTwentyTwentyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "May 2020 [Member]"
       }
      }
     },
     "localname": "MayTwentyTwentyMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_NetDeferredTaxAssetsIncreasedValuationAllowance": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Net deferred tax assets increased valuation allowance"
       }
      }
     },
     "localname": "NetDeferredTaxAssetsIncreasedValuationAllowance",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_NetLossAttributableToCommonShareholders": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Custom Element.",
        "label": "Net Income (Loss) Attributable to Common Shareholders"
       }
      }
     },
     "localname": "NetLossAttributableToCommonShareholders",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_OctoberTwoThousandTwentyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "October 2020 [Member]"
       }
      }
     },
     "localname": "OctoberTwoThousandTwentyMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_OctoberwentyTwentyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[October 2020 [Member]]",
        "verboseLabel": "October 2020 [Member]"
       }
      }
     },
     "localname": "OctoberwentyTwentyMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_OneCustomerMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "One Customer"
       }
      }
     },
     "localname": "OneCustomerMember",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_Preferredstockparorstatedvaluepershare": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Cumulative Convertible Preferred Stock; Par Value]",
        "verboseLabel": "Cumulative Convertible Preferred Stock; Par Value"
       }
      }
     },
     "localname": "Preferredstockparorstatedvaluepershare",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "tomz_PrivatePlacementsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Private Placement [Members]"
       }
      }
     },
     "localname": "PrivatePlacementsMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ProceedsFromLoanFundingPaycheckProtectionProgram": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Loan funding from (Paycheck Protection Program)"
       }
      }
     },
     "localname": "ProceedsFromLoanFundingPaycheckProtectionProgram",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/LoanPayableDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ProceedsFromServiceContractOfReceivables": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Annual payments on contract received"
       }
      }
     },
     "localname": "ProceedsFromServiceContractOfReceivables",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ProductAndServiceRevenueMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product And Service Revenue"
       }
      }
     },
     "localname": "ProductAndServiceRevenueMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ProvisionForIncomeTaxes": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Provision for Income Taxes"
       }
      }
     },
     "localname": "ProvisionForIncomeTaxes",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_PurchaseOfPropertyAndEquipment": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 23.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/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_RangeFiveMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$2.16"
       }
      }
     },
     "localname": "RangeFiveMember",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_RangeSixMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$4.40"
       }
      }
     },
     "localname": "RangeSixMember",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ReimburseOfExpensesAssociatedWithUseOfAutomobile": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cost associated with reimbursable income. This occurs when a services entity incurs expenses on behalf of the client and passes through the cost of reimbursable expenses to a client.",
        "label": "Reimburse of expenses associated with use of automobile"
       }
      }
     },
     "localname": "ReimburseOfExpensesAssociatedWithUseOfAutomobile",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_RepaymentOfPrincipalBalanceOnConvertibleNote": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 27.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow from the repayment of a long-term debt instrument which can be exchanged for a specified amount of another security, typically the entity's common stock, at the option of the issuer or the holder.",
        "label": "Repayment of Principal Balance on Convertible Note"
       }
      }
     },
     "localname": "RepaymentOfPrincipalBalanceOnConvertibleNote",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ResearchAndDevelopmentsExpense": {
     "auth_ref": [],
     "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",
        "label": "[Research and Development Expenses]",
        "verboseLabel": "Research and Development Expenses"
       }
      }
     },
     "localname": "ResearchAndDevelopmentsExpense",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_RevenueByGeographicRegionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue By Geographic Region"
       }
      }
     },
     "localname": "RevenueByGeographicRegionMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ReverseStockSplitAdjustmentAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Reverse stock split adjustment, amount"
       }
      }
     },
     "localname": "ReverseStockSplitAdjustmentAmount",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ReverseStockSplitAdjustmentShares": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reverse stock split adjustment, shares"
       }
      }
     },
     "localname": "ReverseStockSplitAdjustmentShares",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_RiskFreeInterestRate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Risk free interest rate]",
        "verboseLabel": "Risk free interest rate"
       }
      }
     },
     "localname": "RiskFreeInterestRate",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "tomz_SalesTaxPayable": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Sales Tax Payable"
       }
      }
     },
     "localname": "SalesTaxPayable",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_ServiceAndTrainingMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Service and Training"
       }
      }
     },
     "localname": "ServiceAndTrainingMember",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Exercised]",
        "negatedLabel": "Exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExercisesInPeriod",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_StateNetOperatingLossCarryforwards": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "label": "State Net Operating Loss Carryforwards"
       }
      }
     },
     "localname": "StateNetOperatingLossCarryforwards",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_SteraMistProductMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "SteraMist Product"
       }
      }
     },
     "localname": "SteraMistProductMember",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_StockWarrantOneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Warrant 1 [Member]"
       }
      }
     },
     "localname": "StockWarrantOneMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_StockWarrantThreeMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Warrant 3 [Member]"
       }
      }
     },
     "localname": "StockWarrantThreeMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_StockWarrantTwoMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Warrant 2 [Member]"
       }
      }
     },
     "localname": "StockWarrantTwoMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information related to leases"
       }
      }
     },
     "localname": "SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "tomz_ThreeCustomersMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Three Customers"
       }
      }
     },
     "localname": "ThreeCustomersMember",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_TwoThousandSixteenEquityPlanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "2016 Equity Plan"
       }
      }
     },
     "localname": "TwoThousandSixteenEquityPlanMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_TwoVendorsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Two Vendors"
       }
      }
     },
     "localname": "TwoVendorsMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_UnsecuredLoanPrincipalAmountOfCityNationalBank": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "label": "Unsecured loan principal amount of City National Bank"
       }
      }
     },
     "localname": "UnsecuredLoanPrincipalAmountOfCityNationalBank",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/LoanPayableDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tomz_VendorDepositsTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "4. VENDOR DEPOSITS"
       }
      }
     },
     "localname": "VendorDepositsTextBlock",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/VendorDeposits"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_Volatility": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Volatility"
       }
      }
     },
     "localname": "Volatility",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_WarrantsCancelled": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Warrants cancelled"
       }
      }
     },
     "localname": "WarrantsCancelled",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_WarrantsEightMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 2.18"
       }
      }
     },
     "localname": "WarrantsEightMember",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "tomz_WarrantsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "[Warrants]",
        "verboseLabel": "Warrants"
       }
      }
     },
     "localname": "WarrantsMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsNineMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 2.32"
       }
      }
     },
     "localname": "WarrantsNineMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsOneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 0.64"
       }
      }
     },
     "localname": "WarrantsOneMember",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/HareholdersEquityTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tomz_WarrantsSevenMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 1.68"
       }
      }
     },
     "localname": "WarrantsSevenMember",
     "nsuri": "http://tomz.com/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "tomz_WarrantsSixMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 1.36"
       }
      }
     },
     "localname": "WarrantsSixMember",
     "nsuri": "http://tomz.com/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "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/20211231",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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": "13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES"
       }
      }
     },
     "localname": "AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r43",
      "r384"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 15.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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsPayableMember": {
     "auth_ref": [
      "r13"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r6",
      "r28",
      "r186",
      "r187"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedIncomeTaxes": {
     "auth_ref": [
      "r21",
      "r24",
      "r314",
      "r409",
      "r423"
     ],
     "calculation": {
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due.  This amount is the total of current and noncurrent accrued income taxes.",
        "label": "Income Taxes Payable (Note 16)"
       }
      }
     },
     "localname": "AccruedIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesAndOtherLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 16.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/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent": {
     "auth_ref": [
      "r411",
      "r427"
     ],
     "calculation": {
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "auth_ref": [
      "r40",
      "r224"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapital": {
     "auth_ref": [
      "r29",
      "r302",
      "r384"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r110",
      "r111",
      "r112",
      "r299",
      "r300",
      "r301",
      "r351"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "auth_ref": [
      "r304"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AdvertisingExpense": {
     "auth_ref": [
      "r305"
     ],
     "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 Expense]",
        "verboseLabel": "Advertising and Promotional Expenses"
       }
      }
     },
     "localname": "AdvertisingExpense",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "auth_ref": [
      "r189",
      "r196",
      "r197",
      "r199"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease": {
     "auth_ref": [
      "r200"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r88",
      "r210",
      "r216"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r138"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "areaItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r104",
      "r169",
      "r174",
      "r180",
      "r194",
      "r243",
      "r244",
      "r245",
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r343",
      "r346",
      "r356",
      "r382",
      "r384",
      "r408",
      "r422"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "ASSETS",
        "verboseLabel": "Assets"
       }
      }
     },
     "localname": "AssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/LeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r8",
      "r10",
      "r58",
      "r104",
      "r194",
      "r243",
      "r244",
      "r245",
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r343",
      "r346",
      "r356",
      "r382",
      "r384"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Assets:"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AwardDateAxis": {
     "auth_ref": [
      "r282",
      "r297"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AwardDateDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Date or year award under share-based payment arrangement is granted."
       }
      }
     },
     "localname": "AwardDateDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r282",
      "r297"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "auth_ref": [
      "r341"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CapitalizedComputerSoftwareAccumulatedAmortization": {
     "auth_ref": [
      "r449"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedComputerSoftwareAmortization1": {
     "auth_ref": [
      "r448",
      "r450"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for amortization of capitalized computer software costs.",
        "label": "Amortization of Software Costs",
        "terseLabel": "Amortization of Capitalized Software Development Costs",
        "verboseLabel": "Amortization of Capitalized Software Development Costs"
       }
      }
     },
     "localname": "CapitalizedComputerSoftwareAmortization1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCostsDetailsNarrative",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedComputerSoftwareGross": {
     "auth_ref": [
      "r449"
     ],
     "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/2021-01-31",
     "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 Software Development Costs, Net"
       }
      }
     },
     "localname": "CapitalizedComputerSoftwareNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CapitalizedCostsOilAndGasProducingActivitiesGross": {
     "auth_ref": [
      "r393"
     ],
     "calculation": {
      "http://tomz.com/role/PropertyAndEquipmentDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentGross",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedSoftwareDevelopmentCostsForSoftwareSoldToCustomers": {
     "auth_ref": [
      "r20",
      "r407",
      "r421",
      "r447"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r4",
      "r37",
      "r90"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.",
        "label": "[Cash and Cash Equivalents, at Carrying Value]",
        "periodEndLabel": "Cash and Cash Equivalents - Ending",
        "periodStartLabel": "Cash and Cash Equivalents - Beginning"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r17",
      "r92"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect": {
     "auth_ref": [
      "r84",
      "r357"
     ],
     "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 In Cash and Cash Equivalents"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r37"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ClassOfStockDomain": {
     "auth_ref": [
      "r102",
      "r104",
      "r125",
      "r130",
      "r133",
      "r135",
      "r137",
      "r144",
      "r145",
      "r146",
      "r194",
      "r243",
      "r247",
      "r248",
      "r249",
      "r252",
      "r253",
      "r259",
      "r260",
      "r262",
      "r266",
      "r356",
      "r459"
     ],
     "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/2021-01-31",
     "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": [
      "r276",
      "r281"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1": {
     "auth_ref": [
      "r273"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByWarrantsOrRights": {
     "auth_ref": [
      "r273"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r232",
      "r233",
      "r234",
      "r237",
      "r443"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for commitments and contingencies.",
        "label": "11. COMMITMENTS AND CONTINGENCIES"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CommitmentsAndContingencies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [
      "r110",
      "r111",
      "r351"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r27"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r27"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r27"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r27",
      "r272"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValue": {
     "auth_ref": [
      "r27",
      "r384"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 23.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,680,955 and 16,761,513 shares issued and outstanding at September 30, 2021 and December 31, 2020, respectively.",
        "verboseLabel": "Common stock value"
       }
      }
     },
     "localname": "CommonStockValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)"
       }
      }
     },
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComponentsOfDeferredTaxAssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred tax assets:"
       }
      }
     },
     "localname": "ComponentsOfDeferredTaxAssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "auth_ref": [
      "r150",
      "r420"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskDisclosureTextBlock": {
     "auth_ref": [
      "r158"
     ],
     "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": "17. CUSTOMER CONCENTRATION"
       }
      }
     },
     "localname": "ConcentrationRiskDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CustomerConcentration"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "auth_ref": [
      "r153",
      "r154",
      "r184",
      "r354",
      "r355"
     ],
     "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",
        "verboseLabel": "Concentration Risk Percentage"
       }
      }
     },
     "localname": "ConcentrationRiskPercentage1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "auth_ref": [
      "r98",
      "r345"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConstructionInProgressGross": {
     "auth_ref": [
      "r223"
     ],
     "calculation": {
      "http://tomz.com/role/PropertyAndEquipmentDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentGross",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "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": "Total Minimum Payments"
       }
      }
     },
     "localname": "ContractualObligation",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractualObligationDueInNextTwelveMonths": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/ContractsAndAgreementsDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_ContractualObligation",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of contractual obligation 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": "[Contractual Obligation, to be Paid, Year One]",
        "verboseLabel": "December 31, 2022"
       }
      }
     },
     "localname": "ContractualObligationDueInNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ConversionOfStockAmountConverted1": {
     "auth_ref": [
      "r94",
      "r95",
      "r96"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The value of the stock converted 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 shares issued upon exercise of warrants, amount"
       }
      }
     },
     "localname": "ConversionOfStockAmountConverted1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ConversionOfStockAmountIssued1": {
     "auth_ref": [
      "r94",
      "r95",
      "r96"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ConversionOfStockSharesConverted1": {
     "auth_ref": [
      "r94",
      "r95",
      "r96"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares converted 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 shares issued upon exercise of warrants, shares"
       }
      }
     },
     "localname": "ConversionOfStockSharesConverted1",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ConversionOfStockSharesIssued1": {
     "auth_ref": [
      "r94",
      "r95",
      "r96"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CostOfGoodsAndServicesSoldAmortization": {
     "auth_ref": [
      "r72"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfRevenue": {
     "auth_ref": [
      "r74",
      "r104",
      "r194",
      "r243",
      "r244",
      "r245",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r356"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "auth_ref": [
      "r105",
      "r324",
      "r331"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Federal"
       }
      }
     },
     "localname": "CurrentFederalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "auth_ref": [
      "r105",
      "r324"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r105",
      "r324",
      "r331",
      "r333"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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)]",
        "verboseLabel": "Total"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [
      "r105",
      "r324",
      "r331"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "State"
       }
      }
     },
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerDepositsCurrent": {
     "auth_ref": [
      "r45"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 17.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": "Customer Deposits"
       }
      }
     },
     "localname": "CustomerDepositsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentInterestRateStatedPercentage": {
     "auth_ref": [
      "r47",
      "r254"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contractual interest rate for funds borrowed, under the debt agreement.",
        "label": "PPP Loan interest rate per annum on outstanding principal"
       }
      }
     },
     "localname": "DebtInstrumentInterestRateStatedPercentage",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LoanPayableDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r105",
      "r325",
      "r331"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "[Deferred Federal Income Tax Expense (Benefit)]",
        "verboseLabel": "Federal"
       }
      }
     },
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r105",
      "r325",
      "r331"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r88",
      "r105",
      "r325",
      "r331",
      "r332",
      "r333"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "[Deferred Income Tax Expense (Benefit)]",
        "verboseLabel": "Total"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r105",
      "r325",
      "r331"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "[Deferred State and Local Income Tax Expense (Benefit)]",
        "verboseLabel": "State"
       }
      }
     },
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsLiabilitiesNet": {
     "auth_ref": [
      "r318"
     ],
     "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": "Net Deferred Tax Assets and Liabilities"
       }
      }
     },
     "localname": "DeferredTaxAssetsLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsNet": {
     "auth_ref": [
      "r318"
     ],
     "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"
       }
      }
     },
     "localname": "DeferredTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": {
     "auth_ref": [
      "r322",
      "r323"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts": {
     "auth_ref": [
      "r322",
      "r323"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves": {
     "auth_ref": [
      "r322",
      "r323"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r317"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilities": {
     "auth_ref": [
      "r309",
      "r318"
     ],
     "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": "Deferred Tax Liabilities"
       }
      }
     },
     "localname": "DeferredTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "auth_ref": [
      "r322",
      "r323"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DepositsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "VENDOR DEPOSITS (Details Narrative)"
       }
      }
     },
     "localname": "DepositsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DepositsAssetsCurrent": {
     "auth_ref": [
      "r42"
     ],
     "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)",
        "verboseLabel": "Vendor Deposits"
       }
      }
     },
     "localname": "DepositsAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/VendorDepositsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r88",
      "r222"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DepreciationAndAmortization": {
     "auth_ref": [
      "r88",
      "r222"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONTRACTS AND AGREEMENTS (Details Narrative)"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "auth_ref": [
      "r278"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DomesticCountryMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of the government that is entitled to levy and collect income taxes from the entity in its country of domicile.",
        "label": "United States"
       }
      }
     },
     "localname": "DomesticCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net income (loss) Per Common Share"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r69",
      "r115",
      "r116",
      "r117",
      "r118",
      "r119",
      "r123",
      "r125",
      "r135",
      "r136",
      "r137",
      "r140",
      "r141",
      "r352",
      "r353",
      "r414",
      "r429"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r69",
      "r115",
      "r116",
      "r117",
      "r118",
      "r119",
      "r125",
      "r135",
      "r136",
      "r137",
      "r140",
      "r141",
      "r352",
      "r353",
      "r414",
      "r429"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "auth_ref": [
      "r138",
      "r139"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r107",
      "r311",
      "r335"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent": {
     "auth_ref": [
      "r411",
      "r427"
     ],
     "calculation": {
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r0",
      "r62",
      "r63",
      "r64",
      "r110",
      "r111",
      "r112",
      "r114",
      "r120",
      "r122",
      "r143",
      "r195",
      "r272",
      "r274",
      "r299",
      "r300",
      "r301",
      "r327",
      "r328",
      "r351",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r436",
      "r437",
      "r438",
      "r462"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ExtendedProductWarrantyAccrual": {
     "auth_ref": [
      "r240"
     ],
     "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 costs",
        "periodStartLabel": "Beginning accrued warranty costs"
       }
      }
     },
     "localname": "ExtendedProductWarrantyAccrual",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ExtendedProductWarrantyAccrualCurrent": {
     "auth_ref": [
      "r45"
     ],
     "calculation": {
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ExtendedProductWarrantyPolicy": {
     "auth_ref": [
      "r235",
      "r238"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ExtinguishmentOfDebtAxis": {
     "auth_ref": [
      "r257"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ExtinguishmentOfDebtTypeDomain": {
     "auth_ref": [
      "r257"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of debt extinguished."
       }
      }
     },
     "localname": "ExtinguishmentOfDebtTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONTRACTS AND AGREEMENTS (Details)"
       }
      }
     },
     "localname": "FairValueDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FederalDepositInsuranceCorporationPremiumExpense": {
     "auth_ref": [
      "r415"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r215"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/IntangibleAssetsDetails2": {
       "order": 2.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "auth_ref": [
      "r217"
     ],
     "calculation": {
      "http://tomz.com/role/IntangibleAssetsDetails2": {
       "order": 7.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "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, 2022"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "auth_ref": [
      "r217"
     ],
     "calculation": {
      "http://tomz.com/role/IntangibleAssetsDetails2": {
       "order": 3.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "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, 2026"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "auth_ref": [
      "r217"
     ],
     "calculation": {
      "http://tomz.com/role/IntangibleAssetsDetails2": {
       "order": 4.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "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, 2025"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "auth_ref": [
      "r217"
     ],
     "calculation": {
      "http://tomz.com/role/IntangibleAssetsDetails2": {
       "order": 5.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "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, 2024"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "auth_ref": [
      "r217"
     ],
     "calculation": {
      "http://tomz.com/role/IntangibleAssetsDetails2": {
       "order": 6.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "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, 2023"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r215",
      "r392"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "auth_ref": [
      "r215",
      "r391"
     ],
     "calculation": {
      "http://tomz.com/role/IntangibleAssetsDetails2": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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": "Intangible Assets, Net"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FurnitureAndFixturesGross": {
     "auth_ref": [
      "r223"
     ],
     "calculation": {
      "http://tomz.com/role/PropertyAndEquipmentDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentGross",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GainsLossesOnExtinguishmentOfDebt": {
     "auth_ref": [
      "r88",
      "r255",
      "r256"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 10.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      },
      "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/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r73",
      "r104",
      "r169",
      "r173",
      "r176",
      "r179",
      "r181",
      "r194",
      "r243",
      "r244",
      "r245",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r356"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GuaranteesTextBlock": {
     "auth_ref": [
      "r242"
     ],
     "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": "14. ACCRUED WARRANTY"
       }
      }
     },
     "localname": "GuaranteesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": {
     "auth_ref": [
      "r106",
      "r334"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails1": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": 1.0
      }
     },
     "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]",
        "verboseLabel": "United States"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "auth_ref": [
      "r67",
      "r169",
      "r173",
      "r176",
      "r179",
      "r181",
      "r406",
      "r412",
      "r418",
      "r430"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "auth_ref": [
      "r106",
      "r334"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails1": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": 1.0
      }
     },
     "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]",
        "verboseLabel": "Foreign"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments": {
     "auth_ref": [
      "r169",
      "r173",
      "r176",
      "r179",
      "r181"
     ],
     "calculation": {
      "http://tomz.com/role/IncomeTaxesDetails1": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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]",
        "verboseLabel": "Total"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "auth_ref": [
      "r226",
      "r229"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "auth_ref": [
      "r229"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in the income statement."
       }
      }
     },
     "localname": "IncomeStatementLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "auth_ref": [
      "r313"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by tax jurisdiction.",
        "label": "Income Tax Authority [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agency, division or body classification that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes."
       }
      }
     },
     "localname": "IncomeTaxAuthorityDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "INCOME TAXES"
       }
      }
     },
     "localname": "IncomeTaxDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r107",
      "r312",
      "r315",
      "r320",
      "r329",
      "r336",
      "r338",
      "r339",
      "r340"
     ],
     "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": "16. INCOME TAXES"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r108",
      "r121",
      "r122",
      "r167",
      "r310",
      "r330",
      "r337",
      "r431"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r61",
      "r307",
      "r308",
      "r315",
      "r316",
      "r319",
      "r326"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r311"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r311"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseAmortization": {
     "auth_ref": [
      "r311"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment": {
     "auth_ref": [
      "r311"
     ],
     "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 meals and entertainment expense.",
        "label": "Meals and Entertainment"
       }
      }
     },
     "localname": "IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost": {
     "auth_ref": [
      "r311"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationOtherReconcilingItems": {
     "auth_ref": [
      "r311"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationPriorYearIncomeTaxes": {
     "auth_ref": [
      "r311"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetails2"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "auth_ref": [
      "r93"
     ],
     "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 for Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxesPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r87"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 17.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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayableAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Decrease (Increase) in:"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayableAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "auth_ref": [
      "r87"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 11.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "auth_ref": [
      "r87"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 18.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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedTaxesPayableAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in:"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedTaxesPayableAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInCustomerDeposits": {
     "auth_ref": [
      "r87"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 20.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": "Customer Deposits"
       }
      }
     },
     "localname": "IncreaseDecreaseInCustomerDeposits",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInDeposits": {
     "auth_ref": [
      "r91",
      "r417"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 14.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r87"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 12.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingAssets": {
     "auth_ref": [
      "r87"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 16.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherReceivables": {
     "auth_ref": [
      "r87"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 15.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidExpense": {
     "auth_ref": [
      "r87"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 13.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncrementalCommonSharesAttributableToCallOptionsAndWarrants": {
     "auth_ref": [
      "r126",
      "r127",
      "r128",
      "r137"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of call options and warrants using the treasury stock method.",
        "label": "[Incremental Common Shares Attributable to Dilutive Effect of Call Options and Warrants]",
        "verboseLabel": "Warrants"
       }
      }
     },
     "localname": "IncrementalCommonSharesAttributableToCallOptionsAndWarrants",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_IncrementalCommonSharesAttributableToConversionOfDebtSecurities": {
     "auth_ref": [
      "r131",
      "r132",
      "r137"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of convertible debt securities using the if-converted method.",
        "label": "Convertible Debt"
       }
      }
     },
     "localname": "IncrementalCommonSharesAttributableToConversionOfDebtSecurities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements": {
     "auth_ref": [
      "r126",
      "r127",
      "r137"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of equity unit purchase agreements using the treasury stock method.",
        "label": "Preferred Stock"
       }
      }
     },
     "localname": "IncrementalCommonSharesAttributableToEquityUnitPurchaseAgreements",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "auth_ref": [
      "r126",
      "r127",
      "r129",
      "r137"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.",
        "label": "Options"
       }
      }
     },
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_IndefiniteLivedTrademarks": {
     "auth_ref": [
      "r218"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r221"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all or part of the information related to intangible assets.",
        "label": "6. INTANGIBLE ASSETS"
       }
      }
     },
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssets"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "auth_ref": [
      "r209",
      "r213"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/IntangibleAssetsDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestExpense": {
     "auth_ref": [
      "r65",
      "r163",
      "r365",
      "r366",
      "r416"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestPaidNet": {
     "auth_ref": [
      "r82",
      "r85",
      "r93"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.",
        "label": "Cash Paid For Interest"
       }
      }
     },
     "localname": "InterestPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "INVENTORIES"
       }
      }
     },
     "localname": "InventoryDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "auth_ref": [
      "r205"
     ],
     "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": "3. INVENTORIES"
       }
      }
     },
     "localname": "InventoryDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/INVENTORIES"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryFinishedGoods": {
     "auth_ref": [
      "r50"
     ],
     "calculation": {
      "http://tomz.com/role/InventoriesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/InventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryLIFOReservePeriodCharge": {
     "auth_ref": [
      "r54",
      "r55",
      "r56",
      "r203"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r5",
      "r52",
      "r384"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      },
      "http://tomz.com/role/InventoriesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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": "Inventory"
       }
      }
     },
     "localname": "InventoryNet",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/InventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "auth_ref": [
      "r12",
      "r53",
      "r99",
      "r142",
      "r201",
      "r202",
      "r205",
      "r388"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryRawMaterials": {
     "auth_ref": [
      "r51"
     ],
     "calculation": {
      "http://tomz.com/role/InventoriesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/InventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryValuationReserves": {
     "auth_ref": [
      "r52",
      "r204"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of valuation reserve for inventory.",
        "label": "[Inventory Valuation Reserves]",
        "verboseLabel": "Inventory Reserve"
       }
      }
     },
     "localname": "InventoryValuationReserves",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "auth_ref": [
      "r374"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LeaseholdImprovementsGross": {
     "auth_ref": [
      "r11",
      "r223"
     ],
     "calculation": {
      "http://tomz.com/role/PropertyAndEquipmentDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentGross",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_LeasesOfLesseeDisclosureTextBlock": {
     "auth_ref": [
      "r368"
     ],
     "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": "7. LEASES"
       }
      }
     },
     "localname": "LeasesOfLesseeDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LEASES"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "auth_ref": [
      "r372"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseDiscountRate": {
     "auth_ref": [
      "r373"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails2"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r375"
     ],
     "calculation": {
      "http://tomz.com/role/LeasesDetails4": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r375"
     ],
     "calculation": {
      "http://tomz.com/role/LeasesDetails4": {
       "order": 2.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r375"
     ],
     "calculation": {
      "http://tomz.com/role/LeasesDetails4": {
       "order": 7.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "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, 2022"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r375"
     ],
     "calculation": {
      "http://tomz.com/role/LeasesDetails4": {
       "order": 3.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "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, 2026"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r375"
     ],
     "calculation": {
      "http://tomz.com/role/LeasesDetails4": {
       "order": 4.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "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, 2025"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r375"
     ],
     "calculation": {
      "http://tomz.com/role/LeasesDetails4": {
       "order": 5.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "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, 2024"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r375"
     ],
     "calculation": {
      "http://tomz.com/role/LeasesDetails4": {
       "order": 6.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "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, 2023"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "auth_ref": [
      "r375"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LessorOperatingLeasePaymentsToBeReceivedMaturityTableTextBlock": {
     "auth_ref": [
      "r377"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r44",
      "r104",
      "r175",
      "r194",
      "r243",
      "r244",
      "r245",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r344",
      "r346",
      "r347",
      "r356",
      "r382",
      "r383"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 26.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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r33",
      "r104",
      "r194",
      "r356",
      "r384",
      "r410",
      "r425"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r46",
      "r104",
      "r194",
      "r243",
      "r244",
      "r245",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r344",
      "r346",
      "r347",
      "r356",
      "r382",
      "r383",
      "r384"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 21.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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesNoncurrent": {
     "auth_ref": [
      "r14",
      "r15",
      "r16",
      "r22",
      "r23",
      "r104",
      "r194",
      "r243",
      "r244",
      "r245",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r344",
      "r346",
      "r347",
      "r356",
      "r382",
      "r383"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 22.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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LoansPayableAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "LOAN PAYABLE"
       }
      }
     },
     "localname": "LoansPayableAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_LongTermLoansPayable": {
     "auth_ref": [
      "r48"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 19.0,
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of loans payable (with maturities initially due after one year or beyond the operating cycle if longer), excluding current portion.",
        "label": "Loan Payable (Note 15)"
       }
      }
     },
     "localname": "LongTermLoansPayable",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NatureOfOperations": {
     "auth_ref": [
      "r147",
      "r158"
     ],
     "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": "1. DESCRIPTION OF BUSINESS"
       }
      }
     },
     "localname": "NatureOfOperations",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/DescriptionOfBusiness"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r84"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 30.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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r84"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 29.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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r84",
      "r86",
      "r89"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 28.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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r3",
      "r59",
      "r60",
      "r64",
      "r68",
      "r89",
      "r104",
      "r113",
      "r115",
      "r116",
      "r117",
      "r118",
      "r121",
      "r122",
      "r134",
      "r169",
      "r173",
      "r176",
      "r179",
      "r181",
      "r194",
      "r243",
      "r244",
      "r245",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r353",
      "r356",
      "r413",
      "r428"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      },
      "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 Income"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "auth_ref": [
      "r77"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [
      "r169",
      "r173",
      "r176",
      "r179",
      "r181"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseExpense": {
     "auth_ref": [
      "r371"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails1"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm": {
     "auth_ref": [
      "r376"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails3"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r370"
     ],
     "calculation": {
      "http://tomz.com/role/LeasesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "Total",
        "verboseLabel": "Present value of lease obligations"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetails",
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r370"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 18.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      },
      "http://tomz.com/role/LeasesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "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 (Note 7)",
        "terseLabel": "Less: current portion",
        "verboseLabel": "Current Portion of Long-Term Operating Lease"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/LeasesDetails",
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r370"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 20.0,
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0
      },
      "http://tomz.com/role/LeasesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingLeaseLiability",
       "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/LeasesDetails",
      "http://tomz.com/role/LeasesDetails4"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r369"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasesRentExpenseNet": {
     "auth_ref": [
      "r367"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLossCarryforwards": {
     "auth_ref": [
      "r321"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OptionIndexedToIssuersEquityEquityAxis": {
     "auth_ref": [
      "r258",
      "r348",
      "r349",
      "r350"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of options indexed to an issuer's equity.",
        "label": "Option Indexed to Issuer's Equity [Axis]"
       }
      }
     },
     "localname": "OptionIndexedToIssuersEquityEquityAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent": {
     "auth_ref": [
      "r411",
      "r427"
     ],
     "calculation": {
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssets": {
     "auth_ref": [
      "r20",
      "r407",
      "r421"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 14.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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherAssetsCurrent": {
     "auth_ref": [
      "r57",
      "r384"
     ],
     "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 current assets classified as other.",
        "label": "Other Assets"
       }
      }
     },
     "localname": "OtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherDepreciationAndAmortization": {
     "auth_ref": [
      "r75",
      "r88",
      "r222"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherGeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r76"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentForManagementFee": {
     "auth_ref": [
      "r83",
      "r378"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsForProceedsFromTenantAllowance": {
     "auth_ref": [
      "r78",
      "r79"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PlanNameAxis": {
     "auth_ref": [
      "r282",
      "r297"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PlanNameDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "localname": "PlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r26",
      "r259"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "auth_ref": [
      "r26"
     ],
     "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",
        "verboseLabel": "Preferred stock shares"
       }
      }
     },
     "localname": "PreferredStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesIssued": {
     "auth_ref": [
      "r26",
      "r259"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "auth_ref": [
      "r26"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockValue": {
     "auth_ref": [
      "r26",
      "r384"
     ],
     "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 September 30, 2021 and December 31, 2020"
       }
      }
     },
     "localname": "PreferredStockValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseCurrent": {
     "auth_ref": [
      "r7",
      "r9",
      "r206",
      "r207"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PriorPeriodReclassificationAdjustmentDescription": {
     "auth_ref": [
      "r1"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfWarrants": {
     "auth_ref": [
      "r80"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 24.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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromOtherDebt": {
     "auth_ref": [
      "r81"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 26.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from debt classified as other.",
        "label": "Proceeds from Loan Payable"
       }
      }
     },
     "localname": "ProceedsFromOtherDebt",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "auth_ref": [
      "r80",
      "r298"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows": {
       "order": 25.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 Warrants and Options"
       }
      }
     },
     "localname": "ProceedsFromStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductLiabilityContingencyAccrualPresentValue": {
     "auth_ref": [
      "r236"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of the accrual for product liability loss contingencies as of the balance sheet date (if the accrual qualifies for discounting).",
        "label": "Claims against product liability"
       }
      }
     },
     "localname": "ProductLiabilityContingencyAccrualPresentValue",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CommitmentsAndContingenciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease": {
     "auth_ref": [
      "r239"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProfessionalFees": {
     "auth_ref": [
      "r441",
      "r442"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "auth_ref": [
      "r228",
      "r444",
      "r445",
      "r446"
     ],
     "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": "5. PROPERTY AND EQUIPMENT"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipment"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "auth_ref": [
      "r39",
      "r223"
     ],
     "calculation": {
      "http://tomz.com/role/PropertyAndEquipmentDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r18",
      "r19",
      "r225",
      "r384",
      "r419",
      "r426"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 13.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r38",
      "r225",
      "r444",
      "r445"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r18",
      "r225"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "auth_ref": [
      "r71",
      "r198"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles": {
     "auth_ref": [],
     "calculation": {
      "http://tomz.com/role/PropertyAndEquipmentDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period end book value of vehicles owned by the public utility.",
        "label": "Vehicles",
        "verboseLabel": "Vehicle allowance"
       }
      }
     },
     "localname": "PublicUtilitiesPropertyPlantAndEquipmentVehicles",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReceivablesPolicyTextBlock": {
     "auth_ref": [
      "r188",
      "r191",
      "r192",
      "r193"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RelatedPartyDomain": {
     "auth_ref": [
      "r280",
      "r378",
      "r379"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": {
     "auth_ref": [
      "r280",
      "r378",
      "r381",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "auth_ref": [
      "r306",
      "r389",
      "r449"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpensePolicy": {
     "auth_ref": [
      "r306"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock": {
     "auth_ref": [
      "r451"
     ],
     "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": "8. CAPITALIZED SOFTWARE DEVELOPMENT COSTS"
       }
      }
     },
     "localname": "ResearchDevelopmentAndComputerSoftwareDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CapitalizedSoftwareDevelopmentCosts"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": {
     "auth_ref": [
      "r41",
      "r219",
      "r220",
      "r449"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RestructuringAndRelatedActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONTRACTS AND AGREEMENTS (Tables)"
       }
      }
     },
     "localname": "RestructuringAndRelatedActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r30",
      "r274",
      "r302",
      "r384",
      "r424",
      "r439",
      "r440"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 25.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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r0",
      "r110",
      "r111",
      "r112",
      "r114",
      "r120",
      "r122",
      "r195",
      "r299",
      "r300",
      "r301",
      "r327",
      "r328",
      "r351",
      "r436",
      "r438"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "auth_ref": [
      "r100",
      "r101"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_Revenues": {
     "auth_ref": [
      "r66",
      "r104",
      "r160",
      "r161",
      "r172",
      "r177",
      "r178",
      "r182",
      "r183",
      "r184",
      "r194",
      "r243",
      "r244",
      "r245",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r356",
      "r418"
     ],
     "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": "Net Revenue"
       }
      }
     },
     "localname": "Revenues",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SalariesAndWages": {
     "auth_ref": [
      "r70"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SaleOfStockPricePerShare": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Per share amount received by subsidiary or equity investee for each share of common stock issued or sold in the stock transaction.",
        "label": "Closing price per share"
       }
      }
     },
     "localname": "SaleOfStockPricePerShare",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "auth_ref": [
      "r326"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [
      "r318"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r311"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r211",
      "r214"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": {
     "auth_ref": [
      "r105"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock": {
     "auth_ref": [
      "r212",
      "r342"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "auth_ref": [
      "r12",
      "r34",
      "r35",
      "r36"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/InventoriesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": {
     "auth_ref": [
      "r241"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/HareholdersEquityTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock": {
     "auth_ref": [
      "r276",
      "r281"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/HareholdersEquityTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "auth_ref": [
      "r214"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentDomain": {
     "auth_ref": [
      "r159",
      "r160",
      "r161",
      "r162",
      "r163",
      "r164",
      "r165",
      "r166",
      "r167",
      "r168",
      "r169",
      "r170",
      "r171",
      "r172",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r178",
      "r179",
      "r180",
      "r181",
      "r184",
      "r230",
      "r231",
      "r433"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SellingExpense": {
     "auth_ref": [
      "r76"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SeriesAPreferredStockMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Outstanding nonredeemable series A preferred stock or outstanding series A preferred stock. Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer. Classified within temporary equity if redemption is outside the control of the issuer.",
        "label": "Cumulative Convertible Series A Preferred Stock",
        "verboseLabel": "Cumulative Convertible Series A Preferred Stock"
       }
      }
     },
     "localname": "SeriesAPreferredStockMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SeriesBPreferredStockMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Outstanding nonredeemable series B preferred stock or outstanding series B preferred stock. Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer. Classified within temporary equity if redemption is outside the control of the issuer.",
        "label": "Cumulative Convertible Series B Preferred Stock"
       }
      }
     },
     "localname": "SeriesBPreferredStockMember",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of Options"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "auth_ref": [
      "r290"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.",
        "label": "Common stock shares fully vested, shares"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "auth_ref": [
      "r295"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "auth_ref": [
      "r294"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "auth_ref": [
      "r296"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": {
     "auth_ref": [
      "r285",
      "r287"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "auth_ref": [
      "r288"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "auth_ref": [
      "r288"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "auth_ref": [
      "r289"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "auth_ref": [],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r286",
      "r297"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r285"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock": {
     "auth_ref": [
      "r291"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/HareholdersEquityTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r281",
      "r283"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "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]",
        "verboseLabel": "Weighted average exercise price, Expired"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "auth_ref": [
      "r282",
      "r284"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "auth_ref": [
      "r293",
      "r303"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [
      "r292"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharesIssued": {
     "auth_ref": [
      "r272"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r97",
      "r109"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.",
        "label": "2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES"
       }
      }
     },
     "localname": "SignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "auth_ref": [
      "r2",
      "r159",
      "r160",
      "r161",
      "r162",
      "r163",
      "r164",
      "r165",
      "r166",
      "r167",
      "r168",
      "r169",
      "r170",
      "r171",
      "r172",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r178",
      "r179",
      "r180",
      "r181",
      "r184",
      "r208",
      "r227",
      "r230",
      "r231",
      "r433"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by business segments.",
        "label": "Segments [Axis]"
       }
      }
     },
     "localname": "StatementBusinessSegmentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementClassOfStockAxis": {
     "auth_ref": [
      "r25",
      "r26",
      "r27",
      "r102",
      "r104",
      "r125",
      "r130",
      "r133",
      "r135",
      "r137",
      "r144",
      "r145",
      "r146",
      "r194",
      "r243",
      "r247",
      "r248",
      "r249",
      "r252",
      "r253",
      "r259",
      "r260",
      "r262",
      "r266",
      "r272",
      "r356",
      "r459"
     ],
     "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/2021-01-31",
     "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": [
      "r0",
      "r49",
      "r62",
      "r63",
      "r64",
      "r110",
      "r111",
      "r112",
      "r114",
      "r120",
      "r122",
      "r143",
      "r195",
      "r272",
      "r274",
      "r299",
      "r300",
      "r301",
      "r327",
      "r328",
      "r351",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r436",
      "r437",
      "r438",
      "r462"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Statement Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "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/SummaryOfSignificantAccountingPoliciesDetails1",
      "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED BALANCE SHEETS"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r110",
      "r111",
      "r112",
      "r143",
      "r390"
     ],
     "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/2021-01-31",
     "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/SummaryOfSignificantAccountingPoliciesDetails1",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": {
     "auth_ref": [
      "r26",
      "r27",
      "r272",
      "r274"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "auth_ref": [
      "r26",
      "r27",
      "r272",
      "r274"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity",
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesOther": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of stock issued attributable to transactions classified as other.",
        "label": "[Stock Issued During Period, Shares, Other]",
        "verboseLabel": "Issuance of option to purchase shares of common stock"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesOther",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities": {
     "auth_ref": [
      "r49",
      "r272",
      "r274"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The gross value of stock issued during the period upon the conversion of convertible securities.",
        "label": "Conversion of Note Payable into Common Stock"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueConversionOfConvertibleSecurities",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueNewIssues": {
     "auth_ref": [
      "r26",
      "r27",
      "r272",
      "r274"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfStockholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "auth_ref": [
      "r26",
      "r27",
      "r272",
      "r274"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r27",
      "r31",
      "r32",
      "r104",
      "r190",
      "r194",
      "r356",
      "r384"
     ],
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "order": 27.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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "auth_ref": [
      "r103",
      "r260",
      "r261",
      "r262",
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r274",
      "r277"
     ],
     "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": "10. SHAREHOLDERS' EQUITY"
       }
      }
     },
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquity"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_StockholdersEquityReverseStockSplit": {
     "auth_ref": [
      "r275"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Description of the reverse stock split arrangement. Also provide the retroactive effect given by the reverse split that occurs after the balance sheet date but before the release of financial statements.",
        "label": "Reverse stock split"
       }
      }
     },
     "localname": "StockholdersEquityReverseStockSplit",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventMember": {
     "auth_ref": [
      "r364",
      "r386"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "auth_ref": [
      "r364",
      "r386"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "auth_ref": [
      "r364",
      "r386"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "auth_ref": [
      "r385",
      "r387"
     ],
     "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": "18. SUBSEQUENT EVENTS"
       }
      }
     },
     "localname": "SubsequentEventsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_UseOfEstimates": {
     "auth_ref": [
      "r148",
      "r149",
      "r151",
      "r152",
      "r155",
      "r156",
      "r157"
     ],
     "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/2021-01-31",
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r124",
      "r137"
     ],
     "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",
        "terseLabel": "Diluted Weighted Average Shares",
        "verboseLabel": "Diluted"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r123",
      "r137"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperations",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WorkersCompensationDiscountPercent": {
     "auth_ref": [
      "r432",
      "r434"
     ],
     "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/2021-01-31",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "xbrltype": "percentItemType"
    }
   },
   "unitCount": 5
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "105",
   "URI": "http://asc.fasb.org/extlink&oid=124434974&loc=SL124442142-165695"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=124429488&loc=d3e326-107755"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6801-107765"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(d))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(e)(1))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "http://asc.fasb.org/topic&trid=2122369"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6812-107765"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(3)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1448-109256"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1505-109256"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1252-109256"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1707-109256"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1757-109256"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "26",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1828-109256"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1500-109256"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(19)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1278-109256"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1930-109256"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2029-109256"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "55",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e2626-109256"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=SL5780133-109256"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125511455&loc=d3e1337-109256"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257"
  },
  "r14": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(24))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e3842-109258"
  },
  "r141": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=125512782&loc=d3e4984-109258"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=124437754&loc=d3e543-108305"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "http://asc.fasb.org/extlink&oid=125520817&loc=d3e70229-108054"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "http://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "272",
   "URI": "http://asc.fasb.org/extlink&oid=6373374&loc=d3e70478-108055"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(25))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r150": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592"
  },
  "r156": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592"
  },
  "r158": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "275",
   "URI": "http://asc.fasb.org/topic&trid=2134479"
  },
  "r159": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8657-108599"
  },
  "r16": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(26))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r161": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(j)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8736-108599"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8813-108599"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8906-108599"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8924-108599"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(13))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e8933-108599"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9031-108599"
  },
  "r183": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9038-108599"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=123359005&loc=d3e9054-108599"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4647-111522"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5033-111524"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(14))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.E)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10149-111534"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10178-111534"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=d3e1361-107760"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(17))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "http://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.L)",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=27011343&loc=d3e99989-122729"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 5.BB)",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "http://asc.fasb.org/topic&trid=2126998"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Topic": "340",
   "URI": "http://asc.fasb.org/extlink&oid=123349782&loc=d3e5879-108316"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "340",
   "URI": "http://asc.fasb.org/extlink&oid=6387103&loc=d3e6435-108320"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274"
  },
  "r21": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(20))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "((a)(1),(b))",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "40",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=118172244&loc=d3e17916-109280"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(22))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "50",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=16397303&loc=d3e19347-109286"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "350",
   "URI": "http://asc.fasb.org/topic&trid=2144416"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "360",
   "URI": "http://asc.fasb.org/topic&trid=2155823"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(23))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(d))",
   "Topic": "420",
   "URI": "http://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "440",
   "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308"
  },
  "r233": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "440",
   "URI": "http://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308"
  },
  "r234": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "http://asc.fasb.org/topic&trid=2144648"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q1)",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "http://asc.fasb.org/topic&trid=2127136"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(24))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1),(c)(5)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=123368208&loc=d3e12565-110249"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "460",
   "URI": "http://asc.fasb.org/topic&trid=2155896"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r246": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r247": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442526-122756"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r25": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(27))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=124359900&loc=SL124442552-122756"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "40",
   "SubTopic": "50",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123467658&loc=d3e12317-112629"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "40",
   "SubTopic": "50",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=123467658&loc=d3e12355-112629"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "50",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=7516071&loc=d3e13374-112631"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "63",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "480",
   "URI": "http://asc.fasb.org/extlink&oid=117411753&loc=d3e23176-110880"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496158-112644"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496171-112644"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496180-112644"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644"
  },
  "r27": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=SL123496189-112644"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21463-112644"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=123467817&loc=d3e21475-112644"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.C)",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187143-122770"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "50",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=6784392&loc=d3e188667-122775"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "505",
   "URI": "http://asc.fasb.org/topic&trid=2208762"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123351226&loc=SL49130545-203045"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=123410239&loc=SL49130690-203046-203046"
  },
  "r28": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(n)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a),(g)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b),(f)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)-(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(3)-(4)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r29": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(g)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.D.2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(a)",
   "Topic": "720",
   "URI": "http://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(b)",
   "Topic": "720",
   "URI": "http://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "730",
   "URI": "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318"
  },
  "r31": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319"
  },
  "r32": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(31))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319"
  },
  "r324": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123459177&loc=SL121830611-158277"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r33": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(32))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.3)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.C)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "270",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331"
  },
  "r34": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "http://asc.fasb.org/topic&trid=2144680"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=123413009&loc=d3e4922-128472"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123477628&loc=d3e90193-114008"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123477628&loc=d3e90198-114008"
  },
  "r35": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123477628&loc=d3e90205-114008"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(4)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=123482062&loc=SL123482106-238011"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r36": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r363": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=123406913&loc=d3e41499-112717"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "840",
   "URI": "http://asc.fasb.org/topic&trid=2208923"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977"
  },
  "r37": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.1)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r370": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918666-209980"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918673-209980"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918686-209980"
  },
  "r375": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408670&loc=SL77918701-209980"
  },
  "r376": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=123408481&loc=SL77919140-209958"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=124258985&loc=SL77919396-209981"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "850",
   "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "850",
   "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864"
  },
  "r38": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.13(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39599-107864"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39603-107864"
  },
  "r382": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "852",
   "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765"
  },
  "r383": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "852",
   "URI": "http://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765"
  },
  "r384": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "852",
   "URI": "http://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "855",
   "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662"
  },
  "r386": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "855",
   "URI": "http://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662"
  },
  "r387": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "855",
   "URI": "http://asc.fasb.org/topic&trid=2122774"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "330",
   "Topic": "912",
   "URI": "http://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411"
  },
  "r389": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "730",
   "Topic": "912",
   "URI": "http://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.13)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.L)",
   "Topic": "924",
   "URI": "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856"
  },
  "r391": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "926",
   "URI": "http://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959"
  },
  "r392": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "340",
   "Topic": "928",
   "URI": "http://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004"
  },
  "r393": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61901-109447"
  },
  "r394": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(a)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447"
  },
  "r395": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(b)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61929-109447"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(a)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447"
  },
  "r397": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(b)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62059-109447"
  },
  "r398": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(a)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447"
  },
  "r399": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(b)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62395-109447"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.14)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "33",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(a)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447"
  },
  "r401": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "33",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(b)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e62479-109447"
  },
  "r402": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "35A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(a)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "35A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(b)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=SL6807758-109447"
  },
  "r404": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(c)(1)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447"
  },
  "r405": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "235",
   "Subparagraph": "(c)(2)",
   "Topic": "932",
   "URI": "http://asc.fasb.org/extlink&oid=123377692&loc=d3e61872-109447"
  },
  "r406": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Topic": "940",
   "URI": "http://asc.fasb.org/extlink&oid=123384075&loc=d3e41242-110953"
  },
  "r407": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(10))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r408": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(11))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r409": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15)(1))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.15)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r410": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(23))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r411": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.15(5))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r412": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(15))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r413": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r414": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(27))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04.14)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04.9)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Subparagraph": "(b)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=123398031&loc=d3e60009-112784"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "235",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630"
  },
  "r42": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.17)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=123345438&loc=d3e61044-112788"
  },
  "r421": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(10))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r422": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r423": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(15)(a))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r424": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r425": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r426": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.15(a))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(23))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r43": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r430": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(8))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(9))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=116884095&loc=d3e14754-158437"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4H",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124506351&loc=d3e14931-158439"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124504033&loc=SL117783719-158441"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(1)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r438": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(2)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(i)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(2)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "220",
   "Subparagraph": "(k)",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=124433917&loc=SL114874205-224268"
  },
  "r442": {
   "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": "http://asc.fasb.org/extlink&oid=120401555&loc=SL114874292-224272"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "440",
   "Subparagraph": "(a)",
   "Topic": "954",
   "URI": "http://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Subparagraph": "(d)",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99779-112916"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99893-112916"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=SL120174063-112916"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "985",
   "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "985",
   "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128487-111756"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "730",
   "Topic": "985",
   "URI": "http://asc.fasb.org/subtopic&trid=2197926"
  },
  "r452": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b"
  },
  "r453": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r454": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r455": {
   "Name": "Form 10-K",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "310"
  },
  "r456": {
   "Name": "Form 20-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "220",
   "Subsection": "f"
  },
  "r457": {
   "Name": "Form 40-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "240",
   "Subsection": "f"
  },
  "r458": {
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r459": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(a)",
   "Publisher": "SEC",
   "Section": "1402"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.21)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r460": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r461": {
   "Name": "Securities Act",
   "Number": "230",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Topic": "848"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.22(a)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r48": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.22)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(a)(1))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(a)(4))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r54": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6a)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6b)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r56": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6c)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r57": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.8)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.9)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669619-108580"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124509347&loc=SL7669625-108580"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(210.5-03(11))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(1))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(10))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(25))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r7": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(4))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(5))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(b)(2))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.3)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3179-108585"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3213-108585"
  },
  "r8": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3367-108585"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3367-108585"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3521-108585"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3536-108585"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3602-108585"
  },
  "r9": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=124098289&loc=d3e6787-107765"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3044-108585"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123570139&loc=d3e3095-108585"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4273-108586"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4297-108586"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4304-108586"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4313-108586"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=123431023&loc=d3e4332-108586"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18726-107790"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=123372394&loc=d3e18823-107790"
  }
 },
 "version": "2.1"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>104
<FILENAME>0001654954-22-004048-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001654954-22-004048-xbrl.zip
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
MTUL>+BHA(=H[$QA^IQ1]\AL*NE,?84OQ&VA4?9#F^F@>?TDHFZG^6?7!-Q!
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
M$E5O:Y=0PYS2X':QA+C-T=H9V&CYH#!346AY'X,_4M2K]I&RI,\QC[2XO5I
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
M FLHEQ+%-UX01E[R,@H2$($8Y1BJL^P+)&] L@E7Z#&@.*%U'<^Q."H2.E^
MDB9S"'^($\_ME'>OD^I^X>OHNH<]5=5:(J8YF@8DY7:W4QT[S*G[N;(WJ&(U
M>9CI\$C7"SX17G$D.3Q%]PIP)$D7"CYA5?ED)"\T>N4B(H*T"#1A)X_6'^L>
M\+ES_'2_YGT_?'("E]'F00A8K]]B28<2V@JPPKB;DQCNKW?/H34;.%'T @W7
MDQ.Q7K&4FD2OKV@C5CYKE-<YU%"J-@J8HV\,U^EKRP!RZ6%6(=!D)KTY3A'1
M-2;-S#@/(QF]LOKD^7X6KU1;U4HL3^8L9J0(FZQ/ >8<>X&B6JCBLSS349R&
MST$,(F([-)(2BTQD1MI/=GF*L^CHPLOK%^X<EW8GCT@0!F9&ODY:,!3RC3>2
MN$+EBI1=N]A7ZL:'T QNQ(9A>I^L4Q_^+4R922P5WZ6W,JF-P>V,T<:K5"E6
MD-NEU0%%A/WY>,(FT\63>WFHN9(3NG]#&R\BI]Y[<P4E%MR>&I!C8A7:?<(:
M$I#3.*K[#Z0Q_ !$@Q":,72#+[ML*( ^WH?@=K&$^,_1];V!C6[P+4?3R?%:
MM:3W,?@CA338CX(W#S]A-P\7MU<+^S^WZ"Z>?<>^<IAK%?KG'NZ]_OG_4$L#
M!!0    ( #.+?50,G=1S8"H  ,*J @ 5    =&]M>BTR,#(Q,3(S,5]D968N
M>&UL[7U;<^,XDN[[B3C_0:?V86<BUN6R79>NCNW=H"6Z2G-L22/)KNY]Z: I
M2.(T1:IY\:5__0(D(?."&T5"!&S-0X_+1H*9^242M\S$?_[WT\;M/8 @='SO
MEW=G[S^\ZP'/]A>.M_KE71R>6*'M..]Z861Y"\OU/?#+NV<0OOOO__J__^<_
M_]_)R:^7T^O>P+?C#?"B7C\ 5@06O4<G6O?0GVZL, +!R4G6^B[]SL^]\_<7
M[S_\M/O]I15"*M]+:. ?SW9_&<#^>OZR9Z.>$](/%Z?G7T_//YR?[QK-_&7T
M: 6@9P7VVHF '<6!Y?86('167@\RWDL%^KEG_+O=&ZRM8&-M ["Q/"14SWB(
MWN_ZZOO;Y\!9K:/>W^R_]]!G>L.3D3GO7<:AXX$P[,U\-T:LA/_1&WKV^Y[A
MNKTIH@A[4Q""X $LLNY<Q_OC9_2?>RA?#RK:"W]^"IU?WJVC:/OSZ>GCX^/[
MQXOW?K""\GPX._WUYGIFKR%?)XZ'%&Z#=Y@*]4*B._OZ]>MI\E?<M-+RZ3YP
M\3<N3C$[NY[A7Q?1CB#?^--I^D?8-'1^#A/.KGT[P4'@"SUJ"_2O$]SL!/WJ
MY.S\Y.+L_5.X> <5U^NEJ@M\%TS!LH?^_W8ZW'TS\C=_O;?]S2GZPVG?A^8+
M>4Q(U@%8_O(.-8#]GI^=G:>]_ENA4?2\A68<.INM"_5PNL<7O07PH,G"'T+?
M=1;(Z"\M%R$V6P,0A7QV1'N0S^L$CAPO6H/(L2VW.>/$[J1(,8O@?Y'?"<?+
M\18$B6'NIWIV5]*YGT6^_<?:=Q?0/YI_QD[TW%@*>I?2I>E;X?K*]1^;0U'I
MJ2GO Q#:@;-%Z(Z7V*/SV&02->5H%F\V5O , 8-SE;.$@\:+#-OV8R^",]8$
M:L5V )?%>KTTY7DXNC-'\_%T:,YXC!&:-OWZ'? 6?C  6S]T^)Z6W+HI#Y/
MAUXB>C:\!1I<6V2O/$Y8-(T1\>!R8>7<N\ (0X'YA]:^*1_7IC'C&T6Q56-_
M9&V=R'*=OZ#OR!:" _  7#_1<-\/!:9C\2X:<^OZ,?1WFVV,1N8,+A<=&T#_
M%P66S34A(>+&'@FNCT&MR8A.T7RNV6R<*)D-X+!!DD*YX?Y$P"4*D+8P$R::
M1Q\P5@%(IRV!68]!U90GZ/6#&"S,IRV:6=$WQG Q%O3C "W+KAWKWG&=2$!_
MM3MJB?,?5A# V8MK=)3FC3V8;WD3Z]FZ1^0<-U9MVMR/PQ_!W'KBXT-HVMB>
MXQ#^ F+LP]4\,E*TY.&:,XNH^>KH/@1_QK!?\T%D;-':'V:5UNYJK>U5F]A7
MY\B<6Y*@V%?SL8$@]0-A)JD$,E9_8BSQ*=M>"8JJBD75V*<"*Q0%C=3V "M$
M,>9J=]24\^_EA948GQPR.>L>014*T!YL#23&\I[=M;P>JL4KF:C%U8FH6Z$0
M'&8N&X#(<MR6)K-29P>5X*Q5$<XZD>&\51G..Y%AA(95Y#QPMP;->FUQI20X
M!.@4[9[6U=6C&+6,]9R@X@1()7(GK,<Z?;2] A4V02:9)*ZXGI5')XDOKK?D
MT4GB2]CB1.G;V5L(VABQ<:L<<.V)W+I5'KBV0V[=*@\7M7BXD,+#QUH\?)3"
M@_!X85,=8 <L.(3J]W0XWH65W:!+J?<_M>78I[/V[X=$]UD\0FF<\?=/7$II
MO/'W15Q*:;QQO3B?4AIOXGLQX1XDWE;6'MGUNY)SJB<Z+8@02^6PAFKK]'*P
MLTA!1>_;7\NGD?6XI5"U>%=;>[G%)VWQM%1X"TRC:)\7@8TOE:1];@2VNU22
M]KGA3GL,DO:YJ;'EYI)*B1"H[8#K=-)V!$']DUPQ>CJ?5F!C5DE-\Y^G1,SC
M0'P4*O\IX6H-NPCL^!Z<+!PX?85)R$7VH;PN=KTX7G0*FYYF;4Z)'<CF>O>I
MDX6_L9R:+%>II?.;?.=D S;W*'F@%K-%4MF<6JY;C[^$0#97GA\9=1G#- >T
M1;"T8C?:VQ@Q>9YC^$O'<Y!?NX;_+' -GB+@+< "\XVZ$\ELB9P(-?R0_N^L
M=_*2=G722UKV)M8*](;>T@\V:116PA'FR?7M B,N2N7Q@ZK^0BQX".SW*__A
M= $<E'!U]N='].-)^F.J1>#\GGS;N \+0:BN=0_<Y!N_PS:9()F&3@DJDJ [
MX0R;G&+/H2YW"0A(K^/1P!S-S 'Z:3:^'@Z,.?S'I7%MC/IF;_;=-.>SIFI>
M6N%]8F1Q>+*RK&VBZU/@1B'^3:+RDP]G68[4OV6__GW'*M04&,(?0X+^L\:D
MMJ?=<S[/AT\RN,[:%3E^,14C*/(.QRGN-!NR@CXQI5D&_H:KO>Q[/I-A/UB
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
M3:@QM,9$/T<.JAKF1R"$>V24')N2B&Z+]NI:%Q3;D;99G1(I&-?;^N[5]=O
MN+1]/N\TYS+/;TZ@C'6P.*-/? *D.@ J+@T&;+_S#EF I>:T%V!54IT!JTJ#
M 6LU/($Q^/'-SWB9G@KO.RW2^M$!G3U%PU"U&KI0@X]]9S=:/Z\0JO*\U>FQ
M2,)QRNL@#N .);UX2648@<?D3\S*@V+T.N!84R2,7Z=G)3F[2XX"6+-6N:5&
MF%29Q]KO]*1C[WO076"/ 8UI@ZO[;H&-CG1\E ;EHH!8J!T)-]-U/JZ1C1Q$
M']CLNHTCER'I &7B 6_1@=$5/_W63:ZH#6QP>H;AD.2<.N$?5P$ 0R\"<$:-
M#FAPY$^_58,C:T-&J=)VEZ7F9NOZSR!-%,&7]^@QI'W7J:P.=3*.?664\K)Y
M+G8YEU),V1G2&NN@?1;_S9XI[_K%(]8LA=[*89R1R?RF#D9Q #4T>W5=Q96!
M[*=E!+ZIFVU)4H.4Y^/+3I*=OD!MK0-$3 $J;\$?YGD>=(;B1$G4M>$MT+-G
M<(D /-L!H<@[/1?E=WKZXYN;X?S&',UG/6,T@/\>S8>C;^:H/S1GQ!=[L+BM
M"I6^WH9$,E9P,9O(EWV;),;'JABC^=3H9T(8WZ:FF<J$)3@\WTP</M46X/AH
MTO'1)/)^X?4\FH3?PF57R"^VTJI ?I%U)5Y#(K\_3->Z4M7Q209#4;E2CQ[M
MIW2%*N/75OSQ;2,5W!#W;:-6AX6R3^)T[;T.\+;1VWBD2@6/>)BWC3[*\9GT
M$@5VC/8:+[L:Q*KI.F%H_6.VMCCU"&O0=W\00)Z,2T4,1,5I%L=*@>/21\\'
M+]-OL(N6DIMJ7R>6+%:S&%1&G)P310#TUY83H$P#WV.7Z&40:*]XEG!2(DHI
M8^V[Y2Z -]O;]9#H-78])'&D1(WFBN;/G"=H!UY:_0%QSL1!A% ' $3D4"((
M=!+?NXY]F\0Y.2"<!#X<K2F?D>$E13NVR'[NP-JQ758X:/V>N@=2/ FSMG R
MRE>BV[_Q<C>F:6.HW$H'/1,9;U2OLJTC8,NUDE??O,4/:\6,AZZTU$'Q5.8;
MU:5L]YEO7.0[2))JA5**^90:@<,7IE'52IE@C6*D@O%R!A<D0>([^Y;K@L7E
MLVG9ZV+;FFC6ZUIWN.M)VZ@.9S?V@'/GLX8,1]NXX]=K"U59E2@9FD:@7/G!
MC>59:83*%6"5\: 1:(0<589&U4&/N5^*Y'YU_YI E=<DY"C]-32[&0@>''L/
M%&G=Z \F3;)&]4X9-=C3PL!I1/#<+Q2;"T7*\-7L0P> ]A!+2B'0*7 V]W&
M<G-1<*T7PKU/&/JV@\K%H,.R6_0G(X:-_7N'&/R#^JG?C2X@U9>L62G10\QL
M2<G9/6>UC%8'^&J(TZP :7MG+#A2-@E"YM=YHU/HA ]5B&:E1SEE8?O(]:+M
M L6E$=KIH%0*ZY7JH(>)N#9L.X#C;N<YO44RX/KIHR/7CG6?'24SXI4_E\-]
MC7Y_>FL.>N:O$W,T,].HW_'\NSGM]6^G4W,T[UT/C<OA]7">C\.6$L6<"9AI
M_)DAQA>:&#^,Z=08S7^3R^BU;WE9V2B1&.N?RMQ>CXU1;V+\9EQ>FX<*;1]Z
M\$<PMYZ8]O&US.IPU!_?F+VY\:ML]*L,GA$X_/)!B,/>V8%X/"?Q>";&X_F!
M>+P@\7@NQN/%@7AD#: OE601,J^2<T/B$/X"^EL?3@0HW0)U*,)]-4?D=C:'
M[$]1KD7?1.D6\^%X=$RP."98Z)I@(127>6/]RP_P* KI@<VD=MI$-9.8EY%>
M(:1Q%% R7A988L6\,IIW'J9,-YZ<\AD"=!96WA8&BD08-\/A ,D7E)WJV .8
M%?:3Q=5VW89.<NVG\&)QE7LIC_$D+TWOK( =?D=LJI%.R0)(>65G_N@+&2FA
MG4X*K7*OQ+LXA84]JF8T@<L"^ MK!=CE>QE4.IQR"0E2CCT\S)'7++X/P9\Q
MY,)\$,QH_U+):)_=7L[,?]ZBHRSS[IC*?MQIZ;S3J@]2<0C-X0?96>U4 CWV
M8#PIE$B[)G#'R\!FD"B1 <^Q,SX\,O-&.P5(A9U;NR =(!^T)1R3'#-4KRJ(
MGN>!Y866G:2<73[G_\)VB'7ZT,I'UA%,B5&99XLW'$EME7"4]4V2 5O):7[4
M&!Z%W*0$B/(N\Y/2+K/D]:D'$>1)0H'S"/X20V2V*QU-[%G-ML'!<7_M@.4N
MZW:\7#HVXU@(4C )NL>#[AUR)\=,&624OQ6'8KQ-'CCW5J)0T AT@H(F@XQJ
ML>)07#F>Y=F.Y8I"02/0"0J:#,V*JS: (BN%,7 "8,-^PZ0PPX:1C0^)>#2:
M ,(3HU*359EDN4)EWMT?=\E=K(/N_;KK'M%FB7%\"1NEY;<9HCX%VRSG@1"<
MS3J>Y=-JA**(.(VJ % N[W*5^I.<(%HL-*&=#MJEL-XHI9^O252_@:_'M)6&
M6DP9;Y1I3]'ARTM3%/7E&^BBN3S/C=+1J26?BF\F_>8 ES:,*6UU426%_4:I
MW;2T.+$7FI($,6U?5*)SWR@WFZ+2;V@-,H#=[UX%P(D^(BF@PM2Z*%Y8(!42
MK2E/6J=)=?4?]M[1Z0"6H"B-<J=EP90^M%L?IA*=SC"51*G$-=."@K+?H_^@
MIXG^ZW\!4$L#!!0    ( #.+?52,Z)/Y5GX  ,]U!@ 5    =&]M>BTR,#(Q
M,3(S,5]L86(N>&ULY+U[;^0XEB?Z_P7N=^#6+M!50&96O!\U,[N(M,/5GG$Z
M/ YG]?06+AH,B;(U'98\DL*9[D]_^9 4DO@0I5!0=,T".YWE.(?ZD?SQ=7AX
MSC__G^_/>_"*HM@/@W_Y8?AI\ - @1.Z?O#X+S\<XH\P=GS_!Q G,'#A/@S0
MO_SPAN(?_L___G__GW_^'Q\__L?G^QMP&3J'9Q0DX")",$$N^.8G3X#\] 7&
M"8H^?DRE?V/?^06,/HT_#1;YWS_#&&N% =7!/P[S7RYQ>2#T@$-*IJJ#\<^C
MY<^CP6B4"VU#+_D&(P1@Y#SY"7*20P3WP$6Q_Q@ #!RP"OT"5G]RP.43C)[A
M2X2>84 J!5:OR:>\K(OPY2WR'Y\2\*/S$R"? =<?;]</X/,A]@,4QV ;[@\$
M2OP!7 ?.)[#:[\$]T8C!/8I1](K<M+B]'_S]%_)_=KA^ #=T$/_R/?;_Y8>G
M)'GYY>>?OWW[]NG;^%,8/>+Z#(8__\>7FZWSA'%]] /2X [Z(=,BI8CTALOE
M\F?Z:R;*27[?1?OL&^.?,SA8//9_B>GG;D*'-JZ&&I!*D/_ZF(E])'_Z.!Q]
M' \_?8_='W!K ,#:(PKWZ!YY@(+^)7E[P8R*_>>7/8%$__84(4\,91]%/Q/]
MGP/T2(A&/K,DGQG.R&?^9_KG&[A#^Q\ D?QZ?RVMU;)45JKTLR;49H7?H<@/
MW760?:6CBE:+U07?Z>>W"8R25DW.ZQNNP$.8P'TKZ$5-PZ!O4;O6/NJ9;F4\
MZZ-VK5S0/ /HA ?<N&E%;;HG?[K!_RH!1-\3%+C(S2"2 A0S+BV?3NRTY+SL
MT"F5NB=S=QCQ]8YQJ;3$&#F?'L/7GUWDDV5S^%\3\L^/[)^TVO@__W81XDW
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
MPL]IGL@%7)IZ-U[K.B-%5VUG*@B8I!6#3]#L\KJ9''@-^6!#" $1)LXYI<@
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
M@U$VQ_]E=7^_NK7$Z/#K 9)<9:C^Z:-0TJ [GAQHR>F.%V.]LES.H TS6RU
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
M84=J@]]I@=;9$2_]&#X^1NB1&5&]]$9'B^&:N@9##3>I3"GRL(XBNR)!N^'
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
MNS _W87MZ2X,5G9A#ENNXL(N#+S@E8S^P>R213>?W#IT_"O;<"X=.+?E79L
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
M)K3N[U,;R]IIK%M2VW Z;8^\H\F,E&G_="9[A=*T#':5[$R137$43ZO$^WB
MTK:S3VPJ6V>R3OEL0SR$UL"[F<9(D>]@%I,\MVA:!MO,+.>>L7?17<]B7"7>
MQ_NBMIU]8E-9.XMUR6<;(MZU!M[1+(:+M'L6JWTYUJJ@-'WG8#8T]6:LP_E,
M49,VC\8LG,UTWDFV+,N^>>V,#+?U,E\?_<G3'"6_UF1GX3@XL4EM9/LI!&<Q
MMJ=+9V>%8W\KU.)@A,]^X#\?GM.;^Y=4V7ZN?@W<U-L&N>OO#A9=41>%-DTF
M+\L2%M=55IO2LH+2;)Z#X="&( X=5$$<C]G'2ABLXCV4_:[H\\%@L30U"[5_
M!U'&RB=%03%Q&7J%^P,Z.@Z%N[W_2)]V_I$>(+F+L6OJX0KF]^G/CS+ XD&4
M/F\!+W7O4LQW5!?OC ;CQ7CG6=Y=,LS"5T8)>67T<GPRUF"LG>#23SP,*>A*
MS:H_&G+"Y^#DWO7Y+^PYA+,8#/M\)*_"Q*<OC=*=FQ4;MA4^\6^\&QBX$C87
M!0P&4^!@E5[IY[^R)6LX<J&IX:_:!,EP<<_RL=QQ5'O0H1.$%7PH3U[Q/9ZN
M\N"XLHUZC4Y?GN02\/+EI:+ ^M#9C9 -!\@&4#FZ!0')VD-W !W,/)+%XPO\
M3DZEUX$3Y0CO$&Z!((&/PA6E3L/0,J,'/%][U.+,_\%SO4'O"U(3H'Q\JE2)
ML>8E5P,H=N">A7)Q]O!@R3+VES#Z.]Z7783/9$A0>-G+GK3*DF&EHVAN M.O
M1G$6J]=B3_0FWG!H0^KWIGBE;[;PA&@'_3(#WE48W46A@Y ;7^&.98G[9.D:
MFRH;3(K=J#JE)+%:FNS(.E[L1C;LVMI@Y@YM>,^W#R,7)"Q7HU_(U0BMRM58
M2EK__'+ )\UMZ"7?8(14N1KKU<S14[<*16+6Z;#E<#(=(!NLJ<W0\L\ <VV0
MJ8%+](KV(4UD#,C#PK@VDWL_/=@@@6'S4M@^>>;-)F?W3%JR7@[0(P&ALA>=
M6@V3>0S//PDUR]/9IB K)JKST]R&ES G0.?N\HNS6E98/KU]D/+=CCM\14/(
M[2IU2E8066)946NPX.W#R<2Q(0IW$ZQMUUIE=.>>IJ#"*!DVG7B*NFPY6BZ=
MG2E_W]H[F';0ZQ*QZW6V'1-.X7"]"MQ[E/@LY ,Y/.]#$@"B)J)GHQ(,3D7-
M*U;BM+XZRXTU7$SF-CR-;PV<F[%N-E\OP<7FR]W7A^O;7\%V??_;]<4:_^7V
MX7YU\0!^O$0)]/<QN(41,3F_HI_.8C N'K:W*'KU'701!K0&&^\>.<A_A;L]
MJIY(&^H:,B(WK4QN3M959'F%)X,9ZC,%UPF0);<2F?L:( ;EM!00T4*0>Q;>
ML0]G5I]-D&&7!:E3RQOBEP[HG%,J8?:R:>:,9KWS2!]F$^X0UPDKEN"[")%8
M3%GREL#=)$\H4F8S4*L8- !K0"^9?17R+ Z1,YXX-MP]Z",5^+_1T%J(J<8
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
M3"$B,39"%Y-!_QZ,.@#Y*21 !KCP!6JN)A)!8YL+G;5$*,4LYC/HNKT_1M#
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
M713B&975(<'G# +OA;#^-_3D.WMQ>)*F9:19%1:[@:F-K$YH^9,JP3VR9U(
M[O?A-Y(@\SQ3!(J>-UX^,PE)6A4Q-?C%T(XCO?P[FX7'"S3ITXN['AEG2\+"
M9*L*,W$KS$A;N(<1)C'F[5_@(Q?>32YF\/F!!&+IT4!%ACTA0[.Y%:89-3KN
M4$.>.\(@(#;MF&@JG%?/:?K=PSC.L[EN(IJVH"8?0YT..\VAR=!8_&F=F[!&
MH&5IF:P8S;I]UK %C-XXG(MV5EQVZ0+E+[J()ED^LG0@802H]H=B>B%+;KA$
MM;P]D&WNQMOB4U)$]TT7>,>#W,]O:^@\E66;M%ZS<GOF<9M&J"5ZDT+95A2B
MR<B&\!H=5T>6.2<)*WGR8OU$>?8.FVSA206E'M^GEFKMD)$UP D#IEHDV]$[
M+NPUG>E9*E,=+&FF9IKBM)P^EPR6Y FE\5 !/KGXR5X54=/D^T!V)7\51E]@
M -F[V2LD?0@HDS;XXD\-N&0K$8LRQ]V=,QS:X&JL!;+*M>O B1!YUIP=<SRD
ML'J<\VAI),[N;KD8F+I<2U#4793=##C7?RQRLG@M!2XM%KS0<JV8)21UIJ_^
MV)\Q?[<H>O4=N06D61F]QZ525TZ#RN("V'/R(9J,K8AOTA[Z"9S^T$508XF=
MEL @1N LN/E#6,H7'==F_FY8@"$;;ZMJY1;@1MK,F6DV&H_Z?.-^*FX1/4E1
MQP#U9S_62!AZC_SGW2$B\?=)F)\@1O$JCD/')]D*R<7I5_+3ZH"%PYV_%R:8
M;%Z&(9ZVK5Q.U:8%, ^&X="!O=^#GP:=BUV9E49(B=+R ,P+!-]PB># ?H=Y
MH?9M S?X["-TLZ_78I>Z"P<:V_Z=FF9! -N"F<A$R-)2-S=N,@LV?-VPU8I#
M91.LG*6<*H-T.\?4P5VZ;V,E? "T##N,Y5NXSR(VT>!=669Z^56B1-SHA:P2
M<N5B5BB;YJ+T!C-3;^)J+F@U4/(QA\*8G@J("CD;L,GO++NNS)AW0:9>8M\3
MK> "(4/[)BF\?&/$2:0Y9*83K_<\:3789%>^P,GDK9A)LIC+]VA/-EA96"UB
M$3Y$$:*^2;>X']E_2$9"TT+,S3KMJE><BYJ5P):8H8>&-D2,.06[T"\Z)CDL
M[?!:H,'>:(Q+W S[!_B]$6.UM<U1M6&%BAS55&47GXO1T.G3">XDT%56IMH
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
M#7:\C.)XA1=KP4E\MNRWE*/Q$$],$;+A--@ICK.(D4>&U-76<N0>XL'9A'!
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
M>>=W9543ME(BG,O4N$Y9?=R8!&.<QE1BRT:^OWI9+5AVCQL21GXD.%";^Z+
MMVP;B*ZUZQIH ;.4MP?2W=CF3D2Z0TP'B -S5Y8)8)5R_%RBX--D^NMNJT:8
M^'X(1-'7E?'2((ME8%[F,MB/.&\0HFH:(P<[@0_$@;TKLT6X"OYNA7I(J;(>
M<ZH\DV7D[P2K<MXLO4O>K*M_VAOWGS]T'JV ?MFJ>+\- K)='JW0)88%1+?>
MBM*<B[86W(?(HV7;3ECU? &1H*F@LY@G52@?,8\6]M4@ '.3=6 3%Q&( *PC
M\VAA7['@Z&N:*%ZOKN&C L&AWO-H!:8>:$!B=03$K]]5$KA Q,WUGD<+JXYK
M @ET[,8U,2X0L7$]VQTT75,5:*=C56QH:VPH8.UR;5VF<K2DJ*=/JTF:DRC(
M'YJ/),T+C$J9+GB=D1ZZA@K$;4."GTW6C$:<(+)['9:(':V6STG*XONDF'G8
M":G$<PWX.FY9)G+Q0<CL59GG79:M6C%NW0'97NA!20O0&],.L$'(Y]6R##4/
M6:D7<CS3)F NS9Y85P<00FJO?9&L_2THUQ]YADTNP.@DY&E+J!"RA>U/6?XZ
M%/=#GJ-CY<(/5TF(0+*)5:;:="_R^R#5"FW[ W+O !Z$#&-UTY2Z(!LZ(B/0
M@^!#G:=\C+OD9" L?=MW=#8)-Y[0]*]U5CY#SLHWF]/_?!D_S&=7D]NKR>-X
M.IK?T0;#V?=8_? 7LIUZLPJ$TP$YNFWH@UKQIN2-Q"N10W#1 GF^[BA 2D(T
M$;1V0U600,B%SA+H3,+-U$0O@E(S9"B&C8&XJG1B13T<".J1SVF298]I$HH\
M_TJ-D*([!$K"RTZ\J .STW5<HG=0GI2*I75<YU:5R)S(Z\&L_W8U,=(%<;<1
M&00M"5M]),MR1^-;(KJ-#ELB6R,VE%C-1EISY#P.) CZCQM"2>E':T+&P>@E
M29?1/WA5JC>]!)U0J"H82O:);OR200=!N3$C"SKHTP:<R*A:;H=L3[<#(&)>
M-P9Q $%054PI%2D%GBFF4A+%1A8)NR$WQ%H(Q .H&\?D\!VEL6 OUYPKJK;A
M"?L-8B_7U8(%ZW+N'=9JOQ'2B6G;ETEO 9I#-<)@22 _DYBD>,&.UN EBB,&
MB!4$;MPE,KV1'CHX )(]I]MF:043A(?6-B"^ "K@X6%3Y%B&H@#)\]F185Q,
M)4^L2WQG;8&M7R;W]!TIP=E=8V0$-G8O\R250%7RV+I([K)S9@U+LO3 ?F-$
MZ1;80')"'''4<E"!2'?^&4=QQA8=R2;Q^ =;B*LH>U['--P03Z3#:NJ*7-LR
MH3CVB#A1K]62A@<B-?E=O"24L,LUQ!RMR)Q0:8Q,%;L$2+1&:V:) ('(3EY,
ML%$&/6B(5%VU,) ;KC-;#L&TSU3NKB^VF#PQ$^'@5]M#$B?[%W<C8[E=D.YB
M&TJ(1VL6-\.Z\"3G.[GLEA*+OGTITA4%NS--?R)ADI)UNSG^03)Z6Z28PHYB
MG+[GGN L$0WM26$M<CJMMT63O?<D'T5$-4@(Q-[4X40Y/6%*V=<O=\%2Z)N-
M^(F^](7&2$X'Y#@&P4#"F#HN%#XH$)G9'\A2YN6[UPP93JA!<0YL?UW40NF<
M=QW&CBL2VQ0NJLVO75X/Y! [,( \>5LSMQ$5B#SJA[/\A+/(EV=5WASIJJ/K
M0,SZC6278M8^+A#YTP^G>!,M5DN14RZG ](#3_.!V/C[X=8A,A")TG\GK+(?
M"49O5!A[(@\K%G\Z"2N>IPT[KM4P*-1<#TJ6O&Z\[8:WE'<=',<WJ[.%/W;+
M@9!F^(H%Y)[LE>N-B"L9UP&Y:_/3J97=MLTN;MNS^>3ZWW^;W-^,I[/_=37^
MCZ]W\S] )&CJ%M$NT1T9KAZZPWH =4O19#I:Z )YH;0C=>U.Y:#[$#F:0M?&
M!(@RB$-G,4^J4*#E:%HOM>ODY36)V3$IF:>IKAM2#4^IOIXNB%U"5"4UP("/
MCOT9-J5LJFV.L*%Z(1 ?2#G:U[\ZA.! L*L4"-Z4_*?2%(6J:4&I*BJF=2U[
M^(".4[1P7!UK4T-E7*JS/J(NR T,&P/QI&M#?6E@()0HG SL39M%V VYKA9B
M(&)#AXTC!ZZD4[G,]$N'B=>;>%[?'NF60=S+978#*A!Z%+F< WMA^(ZM!U#,
MN )IO%X<K /2-=G9*SV*$Z:&2)>#[[@C2P>H1#.J"_%">,J'LPO+'8"S'&%F
M=Y"0...%H[&6U89(#77B 1$;I=G4@.6HY&3<V)BM?+K>Z[=)2@6GM\@G+%[X
M+0H*12>']O(#( 6'BGYI6Z<CQJ,B;H_@U>B%%4\_@E?K 9"AJ%X )"*C=UX=
M8#PJ!I<?<T9%3!;P.PD?DB4I*GW>Q<NDDAB-RZX68R!+=6W]TH2-[C"/BKX]
MCFD->ZS%&(AH2J@">5^?@FD',(\*S^4P[7><ICC. S\FK[E[X?@'2?TH:[BX
M&ONAP I="TSFVA;,D8=VBG!;P=>%.Z>Q']*QJ9@?C"$'T(Z*T.4PA*7@23.R
M/D5?%]%R%/SW*ENRR0MW2&,_Y'F^[0(Q\;=BB#RTXX)KVW-$N$4:^R&LJ&IP
MB3*V/#00I0TZN04[/G:52WN4"I%T#G^%HG\M/11N5FD4/SVN%1KY(?! ON=_
M$MJ"9?HCVU0= X@'7">MD3Q$$#&SG#GG68J[<W6_.W(MWP@O=#NW0P@B?+:#
M MY52. "<0$_2@%? "D%RG;1TX[CX>,RC]2_*Y:.@TL^2>OAM ^W%3(6D,/I
M-<Z>;Q?)]]KTP%87/]/KT>RWJ]O[R>\#I@<N^2QN ;9R*JWT0KIG6&9E99]9
MJ&73*M2DG]Z_4K[>Q=O\)R-_&;VM"P\W0FT_%E)M3?6A:3!%G.()REV!0\A5
MW.EA0P)L$R"OSB/H+_'P*9!VM9<NV2-W\#MX][;.YLF4^$GL1PNRAW2>]'84
MG.)KR ITU0;BOMGWDCLIP2"4N,K#5CNEG6WJB9S US4@ALN3\K%VY4B39V>?
MODR]S99"]P1G9,KBM"8A)=XHR\BRC+@YHV3+D9!A>L%/O,*ZD@M"INN-$RFK
M;L0\;%;T-IXEX?([BP@L35WEKQ;9$1#VB6D#>:>>?Y6T)M,IS/E55RK^85#O
M>E6L88U@2_WYF"E'% @YMYF:#,<^*0J>QT%A<BVY_TS2ZP6.1-%WK89A14.U
M $BDU_FW>#=:0:A(-EK0USR;.IWH3;+REN%J,?)]9F3,*.E(],8\6=8*<4J^
ME%UT-V3]7\$KYXA1$79\; ')?G'^I=0+Z2#D-K^+WRC9DO3]_NYVPA+>IV^;
M:5\_X_1)F%-2W!,1)="@)*0?X+"1)0^(7.@GS=AK.+IE %%\G'\AR-.G<]YU
M*$_<PY..4HV][G>D8R\NYE)V'V$O6N1$I*27JE1XS,!(-VS7!>*&-\11U _U
M2JXSD-98<>]N_'F[K";.$,A4=4\'DJRR+RY*+I$FDH!PFN%/>R>$=5D'N]Y(
M4Y70!^*0T9Y++9E=@QN$(TUUQH5X%8F<HH3=D*>')@;R@CD99^L  \E=?SC5
MQY2\XBB02&8O[HE4P_6#BE[N@S&6@[FS5PY<&?*&O"99M&RUSXL^R%.,T .2
M->QD:Z&"MI0='Q(G<X%E=\>TXNAA7Z01QPD^.F>YJ#NGDX>[S^O$V6.?A,AW
M'#/XZ.*;$'DI)_U'62F4;.F*!'DAAN->?;QAD.HYOO7190@9 H#(Q]9(@2,>
M^TC#EE=]Q@)B=2./NCWIM\!+>=T^V E14H5T.!A*O9%N8]4'XD)SZD7"PWY<
MYCF.RP/3@-_%=*XKIA(MYI-MIB$H:L1ZRW5&MD("*(DF^F!>!^@@4OE7L5^O
M,@HF=P!L_<8[[(M46_%-R J=OO8H%WDI[=R93W+.[J[./7?"$Y_+K&=S1Q3:
MCN<!<>'O:U>W@%U)V0\[_J:/N!MD^Z%7!7RY+.].@8+[K?5\,(I;<1 S;776
M4]R68"SD$4OW/MY-<00EBO74:Z*CDD_M(UZRO!AQ,$]Q0%YP^F=>^YIS^C=W
M1*IE:!H0IY(CZ%Z] EI@+YC6:S*DQU7J/]-U. DI'GH"+=]9@?*_KZ)7)FAR
M&";NA,(P\#4@VI1>F26)NV#4T'4A)8'W<=8BS5*M$$BBN-YXWIT,11#;A5:C
MY""^C6(<^_U<V(*QD!?8-I2T&&=:3#+D*!;5H/'7=.(^(4%>.WGG8E^XUO.7
M@;@?LDS;=8%$L!S!HEJ62T(OV#NHPUUYKGG<Q&$^0#D.UW9%BNWI%A ?\5,R
M68R^X/.@RKGR=#=!N2*W[]KFR%)\;, 6]'KA9Q5QP<->\V=/R2M^7WN*/Z81
MG?4K7GS"B_RXB-<);9<1?1ZR?+8<R;S-$*P<I*\#R0_6&_LZ4Z%@*40-6PT9
M^A"X4*CX.I0Z\'UOX YD*); A:K9&%SV_^Q%^H87)'?QI:2*_"4)V!_H:W7_
M%Z66]=%KXQ_^8L5JQ](?GG'\1*9X2<9A2$02_WGG@6S=<AP@EH&^%_% I"PV
M@GVY&X$2YH <(\J:-'VGR/,LDN+UV]@=$=VU_8]V>W:B0+%:6GLG0BJ[=)8U
MH[N&!3PIU(G73$&!8LVT]E,$E"AT]?JZR'/PX461@^\N#I/T9<W)YFR+<@/0
M1X>E$B#VJ[Y735L:%'FA!G907/O;L,J/E" B-Y:]AB@T;$L!XE?6EO(<;Y5Z
M@ 6;!E55KD-L-X;51DX=MJ5'E>M4E307S2PNQH)?@^H>'Y+8I]AVJO4XV)XK
M>?9B"6.#[!#T5/)]!4B0>"_<;0^]8'JO!?LV[@S2M1&Y[9&I^)H%13G1FKA5
MK50STH(APZ:Q%V3>+U?5*NG19L2G+<5:J:.&19X6*@2*IOG(M= K08HETVMQ
MP*U+ [TBYBF.L[5\/D^V:6XXF[FY(W(UXFM DBSTL:M;0"YXU6L208[7T)3X
M"YQE41B18&O"X$;9Y<XMK0>BTE[@.E"</GK@Y1$D*'B[E2C.5^'@AF1^&N76
MQDGX:95%,<EJBQG85[]<W429OTBR54K8/\:SZ^G=X_QN\L#J%GSZ.KM[&,\&
MK%HP29]PO,F]N:O7L$X3_%@BUR3<\!8O=J4<FJ7#7H9'FN9I9%A!&2\I R?A
MQF68(A%(Q)6VR#!=QP!R!/?+DGK!F$^!PX(&Y]NTL]4+/5_>)^$L>HKIR>)C
M>O"L(_:8*$#)X)?$J?(N=@YW\>SKER^CZ1]L!\_N/C_<W=Y=CQ[F5Z/KZ\G7
MA_G=P^>KQ\G]W?7=>,"-784FD9:?VP=9OF^080MXB=@VIPOA$_WZGP)Q6*H_
ML@+L0:G()\&/>D&W'=3A]N3=P[?QPWPR93NE9N.YAQNOW'[XE)Z[J<E$QW,[
M(94X9.@\7Y792>PH42]$7%V'8GB1(3Y'?R>!<+CM\XTV3"JQG:4=I"J'.XCN
MGYO)E,JACY/9W7S 733^0>E/24=EC)0Y]7^-5]D*+R2UCC*]D4+,FLJWQSS]
M]@DNVB*L.:<U,C7%,X&X3[0B9/7]U@1QN+TA"JXI[Q#U<(<\3B>/X^G\CZO1
MP\W5^#^^WCVR,G/#;90"R.,"YR_E+9KF7=+8%=F:IUJ#5ICCSK'55=1F%.2[
MG@,E(8D\BVHOJ$ZX!Y3WZ!CQ$U.L[BO&RAM2JPI]\]'#Y[M/]^.KT6PV'O+2
M^IPDP?=HL:"4/H321AAL-0SR-2<8.J\$;Y)24F)C9^28Q':!Z$>Z,8=GJY>&
M/MRFO!^/9K7O+U4_W(J;IH,MQ/MU#I;&#;;?#EF.'@Z;8&L]H4EX3^A"(*WV
M3V-7Y!#=LH$$[W$H7[L]Y)$-MSE*T>)%N:H;\D8627[+[L78EW>.<;ASKD>/
M=_/1_=U_L=K%D]OY[Z/IF+["OHWO)[E\>74]F0UYLPG*<TE5$)#KC[Q ]?UN
MUKB>@+)2(71%/Y>XR'PH#^;<:H=V'A+9-L95<@RS<UMRL'9''T^) 7?Z(EEM
MIAK%3YMR5==)O+?PRWO<K.SQ^\E75J;\R^/7W @P&T^_W5V/6>'R^71T/> ;
M<AIE?V;YZ]ZGKP4<Q7*!Y,)NR%(\/:P(;<>H5X0LD-N2>8:/EL,@PPZ4 (C.
M7X[F54U,9] #6N2>*4&>DP7]?K;VT:K;9E;%^O8;O3M_F]S?C*>S_Y5K:.9_
M#+>U<J>B/1 2;NC</L@T]:!C LB3 6)!FZTN1.DAD*'KH0-$=)7@2KVUK37:
M 2^YY.4E6A='RB_FW#)(8H[E6ZWXK]#+[<O=G FLLUP_RJXV>M6-'X8U=@M@
MM='+M!H&*9KN*H.6K92:K\1^;3<.<HFO5!.9#22U=F)9[3[N2(4A-_/Z=F?3
M'3VE9.VB4[>/*QXLA4BZWL6CS]/Q.-_4/YEJU=$\O1H==)0(6\N31HE5W OY
M:J"Z0**8NE&X1F"5Q#S<_BK"!]8E@-@\<S_4ZU7*R%238[>\Y2J^*Z/KZ^G7
M\<W5^#\?QP^S\7KG3>:_C:=7UU^G4Z8#NK\;?;J[OYL/[3AVD*"\ %[^E8PO
MF?PP"-N>HPRJH3TL^2 S_1U_-VM"XJ[M]SO("UTCJ!!N,'>U#BROO8M/1*7!
MSY)-"K*ZAZY6\=4I3HS?1]/IZ&'(1R[+Q-3F%JYOCWS?4H>MF?5YA1G]B93'
M:$UC9.FA"<52V4#EVHTEPC2@"3+!\4&EF?+.J/CHW$]&#U>/HS]&G^[' UHC
MZ:SEZR/5M4:JJRNX$L]SC !:_HR\RK2A%_)=BV @R2*%A*S*F;+0AO2*V4:)
MUZW^&H>8Z\F7\=5\])_#ND%O9MW.#9K;"1F6$W2,JCP=)"D'%WXOI&F*;@#1
ME<@0O_;2D$(XH!YD4ZZ%OBA]PAZ5Y>#W\DZJ^+-<?YW-Z5::,GW(]9BI1%AD
MW@>STZFV;H>5J/[SZBE+C&&3;:F=;.Z-3,51'2"I"^38P=%!ML Z9"R=EY&_
MK^A0XS>.SE&KN,#,OGZ:C?_C*U-TC+\-JVP\G+],YJCZ'LC1W+":U61(,#(&
M.EX7%/HD5(%XI#32O-X<UX@->@RJ(!95JSB=R,>B7OU3,? _?YBP5#=0+6M0
MF7$OA#J?W[O<G<;MA0+--A4@Y10E:,^[R)H!'F[$8>)/HB1=)X+999WPUU0.
M_IM*EGDTQ2[A Y^G;4="FF%Z4*PZ7?G<&711LF=(WG]EA87&V3)ZP4M1)J7]
M=DBU*$& N(MUY1L'4I$D=$BNW.(HS7,R?2&877)L!:U/$.GC57H(Y"JZ7LW^
M=5F\;(^VR)T#+_VO_ TJTQT9IH$](/F2.E^EK9!N6&M>:JUQ>HL0BM%;$/FU
MP.^#'->W%2 .AET7@ 2\#==;EU& PO5MH@5IGO-Z(-TB%@9BH>O*\49P&WX/
MJG?@QAY+\U!V!+K,K< 'HD7O+BFW!+OA\: >INO0O'6@GC1;!9V09SEA>.'G
ML0R^#?,&+4@J%XW5XI;M,!RR5&+I<!R4.E[ QR OM!S=W-OX29_+#E+-3-SD
M0Q9T0H%OV?JEZB-:X"L8HEZJM#3>:)SIE1*L_&7A5+;&R]_ PFXH,'7KTD]F
M.80%_P?5/6UMZBTDWOH>2-$"K &I5M)=XFT 5S!M4-74&*<QA<;J?.7!B]*\
M:^B(U- +H(34=-Y\DA@+3@ZJ?9K2JSQ>$?JT3I[BJ)7MIK$K,BUB!Q>^(>51
M%OP<U R7K[A/5"(/RG4>UA6!\T@5YE81O1'V^LJ:+LH.@Z$PQ%IPX4:[8W 7
MJ^!B55 5UYMKBB!:LI]:^";M.B''IR^ "U=$R> K.-]-&<5U8XZ?%G2I!>O(
M,KKTUB4T1_[?5U%**J%G7+_F=L,@U?!,"TANP$YOH,Z("S8.JF\:!7GEE8Q.
M.,^M)'TI-W1$H>)8 9!TQ%TWHRS&@I,@E$_TWBBI33:QE$T7L$1GY@5)W(L7
MLN1Q%@X3@T9)%L5.J'S@1?&ZMD,3,_E]D*9C)ZBX_UP6#R7@%:P;U-'I@7PO
M04R3F/[HKX.N6WI7M!T)>9X>:!?N,-,9=,'\[=L FKOI/+<LUSF;5E,OM7 V
M70_[<5Q-%<,CWK!%<%]><93F-T1>/#Z;Q(<ZEYSH,KK$MD,AW?"="W!Z*[A4
MKV3LC'KGJ7J9CUNZB_'34TJ>-J6=-MH=V>4BU1WAP-,-^!*9<(FT0WKHQ'K.
MF-&UAXCP_*ZD[RK5SP%P0/=>2,=U==<8]/TZ\Y])L%J02;B=9Y&,0G*KR8Z
M7)LX-A!KK0Q3ZC6.;='V>1 /6XR$OVTKV;KJ2Y( V,$GK4VBV :I7B<@X!WC
MVU9R]%)5OZIN@UJ'I&!'[3YN@?8R=_"AVI2_>VN*UAW4+P&P<8?)MF=KJM,M
M873OU_-M%$=+<L\4Y;6L;7532P]&26 I&,@KJAOS&J[Q]J2 $ 18%D,"$O(Q
M%%:44?:(T^6N^'-)^==2QNOM<TAS3-<$XFEYDK5U"F)!"$,L$":BW7.[8C65
M1R])NMP4;]Z8"=H>5WU\!5%10*F6 _XP:ZU7&AW&5)XQK5KNHLX55?1*QL%U
M?2< \DG'0D^FXM1D6SK[Q)EU5G9;<CH@QU>-:LU[$$6="BK7;J$F/$==]QQG
MD4V=^?@I_WB1$O2]D06LLU1?I'JV90&Y6Z6XT1[:43<ASXN'?3C/TWH7ATGZ
MLKZ$9=@BT1.%. R@%(^09DH;8$=%XW-8,EN]OBYRNR5>L)#BVT7RO323*5G@
M)0GF2>GN:.+5,4,B4]-= \B+2)J)O2"&$(3/0MF2=/^@>,3OZU3LR2>R#CTF
MP1=,91Z9(W5+R6/&128FG@'$=;+=Y=<+[%T,/\!RAWQQLI*F5Z[H(0!Q\TS5
M#W7;U:L)?XXYS67YU5B HNTXR-5\7/5% UVZL"!_]3SO#O\RM=F_'19>XV_J
M2O;AFNIK '9PSV78 M-2JTDDAE%)YM-<!V%DTV2QN$U2ND"#]FIJJ8&0K_H&
M!F)7EN!0@\ZP'680NNC:()P1BV1]RD7.3^^[)AOA8L0P;5!^(QF5/9D-[L<K
M\7,QE/UJLEIF2QSGH0#L;R3UHRRG@NPZ&G1>R,*NX0.Y;SHO2Q@DA*3SWNS0
M2OG$3>AV-DFGT=.S7%+;KD,BS:-2/92DM_T<>1W0GT+;L/TJ;XE^>G],(Y],
MV0[@R*:MQD":ABT;B-ZT-2^[PSU4)@Q=A9 O4%:3\'-J$0*0*J?T=$U7/GNL
MYUS8*'9&_C)ZDZR#)CT$4HD2=O1WXB6)>7U-DQ]YBL\O41R]K%X*9FV5$C*/
MP[;#(#5T @](6$][^E>W9&<"#%YOK+EV(7^C5A+XMZM@"&#[#E/*T D4#$2V
M.BRC1T_H"I;V[\CVHR)B&)H/Y$3HQLX&H>L(F@Q^2!1IDOA'0:7JP&%I0@";
MO:<:A2$.+6]0K^/=HCI(8R5OV*XL3[F1D.;;8'0_#?QIV(\M 8,H_L;??Y5
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
MLZG7)MYTW"Z(904D0-*JM-ERS8@*1V-XO&K:;H).2-5#RP BEC3S0)YU!_!
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
M$!E6\&JO?^6?C!I@_ J]9G1>,[H#]>^V5&,1%;C""Q88J#4LO/-.!FF^XYE
M<O9W6IH#T0M"6.>Q6W-CH6"*HE.?B95/(57QO&J=V0M:>">A!H3@TA[1B4QB
M9UELH@F@T'1] ZY/XKF6H!2- (;!UI7DMBKUZ87FR2'K<_=LGG0\(ZB6=;T
M\Z1A*K8%1.4H05\9\V0!Z4.8)P/-=P,@IA .G67-DP44(.;)38S<)O!MDD[9
M.2RV2'*[H- +30](0HXV;&I&!"D2=G^:DB&Q=9V00UQ2C6H<-%A3P -YUAW
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
MKD@RF4OLF.%1X&!+A:87'F9!=:0<A"PP+1"-7I)T&?TC_WLOBZL\(+(MGZA
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
MJGSWH\U?V/]X]"WSO_]_4$L#!!0    ( #2+?51.)&)OK$X" 'SI&  ,
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
MY;GZ]_E V92AU=G6N>=T?X=Q:Y%6&:4';FW=NF'O50R+>?ZH-FQZ3O>V8;3
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
M-X62]N#[47>0N67[@NR@B\/_N6@>'1\<'E\P)3WY4I/L7R-UJ9O=3*O/(,.
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
MHJ 9!W$K/ 1? Y*Y'_7A+1N[K:>L[P%[_5WE QAW 1<=[#?$B64BA]X3Q.;
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
M4DZH?KSGE]L[SAL<_G8>;$S@K'&DY"D<* 5J X?DT?7M/ -]P88^?W]T^.&
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
MGR-Z$C8\V'T:8)T&VBOYJ[I^$XVJF&RP?#/:U+$NX$1\#C8NSH^?-GSYV9"
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
MLM?N2CU+6CYV&0[,IQ9TP=&YRK@  AN:2)I(&:,%;.F#[W6=C0@H4U//U(5
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
M@M >!1VU]D![$NW&;A5.]BECHC"/GSWB"!O!>*N\>E"9P6D[L!\_O*R&YBO
M>7D.?7'"DC]-.4)1ISDVEM'J]'&>9)2M%*.8Z>4JP0HSX=I45HQ#D.30F3%W
M(U\:4)FD#1$6V>*3ST&0#1;W<,KD"X5:-H@=A]AYO$'L?!5V/1_VO13,N(21
M&+;3%JQ?TDD8\XGM7Q3WJ\09A.,+FUN.*;E6E!=\= W5!%.VQ]S[$K/(&!D?
MI7&DCX_M!<J)(X/Q#IK=E+7.1<E%J2Z%D:\-=9ER03+*[G+6$E-_U-6@TZ6!
MXF#S15XN4Y<W*?#H)X4@Y9.\+D6K?,IWI3,9E]BDKG,6'#S,V[->Y_R+ D&I
M7Q=!O!UXFYYA[%[8O!1;6FOHWU2S<^T*;KU@G_*EKBBG6A-IH!8 R9.(X^/:
MH /O(9UE/V5 %_C*"5_.2JY%]0 P3B>9=>-0"0H"7W-<?L"A?I=^\I\/LBN\
M!WJ'NVHCQ672^+O/IY'+O<7W0U[6YKIS\4U'*>R?P@@G]QS$>Y66N\2UGC,!
M6YQ[0?EUI"Y.1D@61F" U<O64IIER 4O+PO>.K$I,I4;X@1D_H48X<2+5@$=
M247]/9VYY;L]*Y&)N]OP\.JI9M2WD\8.PB-<*5Y&3V F?A@^JN"^=%TIS&H*
M"\M<AMM@7,KEW0%YW:WDQGMG'/FP]8T[<@_&Q.]3;N.PYDM'S%]I[TCUBNGY
MTK.J>Z.98#R<^@KXW$/*>R(JHDI 9!NRE."^BMYW.*.PU]4;81K:*$T1U[?I
M2P:(78]<J1.IJ;007J<T0#7BNT NYK70(S92Y,M%G6A%7\M0;&A2=)K_;.'4
M3[+Q:BVEWA([IJP%**FJL-; 88T[KL -\C[2Y')P1)8((4#/U.!5"VNX]0]6
M^V%:D#A4TG3M&#M%RRL$Q96:MG#M(\HE&R,DENAM+K5GDW1DDC&2GJX8/'B.
M)-OR);T"3<R@<Z6&Q-%2#D]>+D>S.+>'N!HEQEDN4N'$H#<;QTSTC/F2<Z/%
M&PM&8G-BAD6!BKVE3?D N4)9.0^S-B./W;MPF[6-8%E@'Q-!,FJWTA(;INA/
MZZ[=KU%H;TV%=4?3A_NSZJSV<=T&IV;*O1%)PJ:&P!D96M0T?%]SL$'I40.F
M %,I9>G[]#'>:K[^?NI3DRCOKT..=L1;(C &I2A*E%ETJ2O#)!UGM8=BME5S
M!:%5_[B2S>,+;7KI<&\OFC"3XBML^R2;G=8:2ME0U4JKT =K+<(] Z7'Z>.\
M*^I3)W+ [>I$0SF4ONO$ZKN0@/H0D#*J 4)(NA!?:M84]0EU4*ML3! D@^M
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
M3(Z608>GA*A4JJJLLPMP5IP$X)C))]*_"0=+ \Y2RG^:)'.4 \11+N92(29
MC.S.-]A],W!V2#D@96]!%0D&MX#RS<N*_ HHW/"!W_1DO)63$6UEO[U5 8_:
MFO&[S&)3SY.HIL[-L!\$Q'!(>) 6WK@!.7N13JD-]2%6A&+][SLELGM;E>C<
MU=$A# %\SZT7A^_>'LJY.GY[:(UB?^Z<-J686BG<NTSI75[VD>F]TZ]H8:ZD
M\/.-*$4 JU?7BJEE8H$::>Q@=CD;!_ZP.:V$R!7X=:K5FO [&'0FP 740@/#
M4+6)!*/-O*P7,P0.!<L-R^1P-ZA"P+'!X^R'C"J,>G3A>2#7M];&C:-Y-JY,
M/0?,]6";?Q=A,2GVM5FX\@1G4,"1KJ3.!T>'Y3V\$K#A#%N&?W':W^K/.=PC
MR *J_@PR84;8IV&,&!3",(#KQ-=5#>^LE8^X%HN*8"FL&54Z^TL6:.Q2 ;A4
M],5WDVB,K!+ETIT%XI.X5L=.)XZXM7DR*B_XDAJERU+,,5-REM#UAN9E+FQ:
MHIRQNMCL"JN=&@_B#"< N\I:N9[7P6V)LW*""L]JT@R-!%*K.'L\0%H%M\@F
M]4[OP!?E=E-BI"/0K'2!]J\2FC7-N([F*=9"\CT1$Q<CG?4TSY'8$1]7M0L'
MQ/@/?-JR=K@+,:E)]E$4'F^#EHFVGCW;>0;_^XDXT!Q:ZT.6"U<+'0]/1TUD
MXKQ$IG+'[LPF@7JK"=2#30+UR]_+?[CLS4OA63@IJ$)L#"HLCEZVQ;G\$P_)
MNQ*_2K_  D[G&[P\>?GN4(W^07(7O1V]TL4[DU2M5FWB#1R9UCE2J$R,#P3
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
M1?"Y&GZ;2?QZS*#J>E9>CLF*)1_^-<SA'^B&G-&4)%DJL5:P0=-$3 RRIWG
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
M:1 V<M V%T_D\$A*'V0N?GN?NJ DWG A(4"5VD!D:0.E8H^()>*)&DPA)*]
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
M^LTK<S8C69>[,DMFNJ08#CB4DM='2ZA5PL+P/;L"UF1QK5JY*YL\$ U!NI0
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
MKZT&99<))_O14#<"F&E)?+BGA.3<RNW+;8G9^'7)O)=%L#'8;]T:J+Q@2L1
MKR)[9E?6'OAPK+T$]A?U00J#>_R']E>M!6+R/'>B)YYV(\X ,@'3!20)"F-9
MYZ99-2\TXIR1,BT=6E5ZFM"C;?H'>I;6OS,K5U6+KMK7J @L:^AUQTFO7D!J
M0E>2S?M: ;P%"><+I_-.1KHL]<H?X("?B/>XW^/,=<&0_F"'-<+=+ZW+EO?;
MP<'Y V)":L$5$U$A.ABDB@Y)3'A'9<=&NDAM =D&^5 />>TU$&K02OB8R N.
MA*EB+[PSLB:DR77*T6QYE)/[2-Z(F"INU6(UZKFO:#6PS*Z*U.?J\J#<;&5N
M^UY?1!G:54HB M8^L4%;5BK#"S HN&P1-253L32@]?7+V(LIS8SCTNN/Z%ZC
MP%)4PTW+LC<Q+=5YVV!7B[A%GZ]O-2;583F6E;H6R6-7&".NVJ,$>1M&Z,"I
M6CF2E)A%4G=$@Q\UBV4/S#0J92;>,#342.1IP@#EP",3TL ,V+A7Z0")4 '6
MXBE5@1)L#.< XRPC!*J@@CN8$6FTY-1!55_$0_X7;L?[#, J5=3CFI W4<)E
MRR+.M/2NRX@C'O"8*^SVAM;&33B2];LR.1IVIIS85;-,F^^1M)8P3B!['8F(
M>:DV;0N#)&/O-?4.C H>TOB]J]ZLBG%2V)$(;T B M4>[X!R'QEGGIZN&IO-
MG60K 2)F^_=ZLKA%0X\: QA $>%T%(G'*[! 0FT%6][GAH?IQI5C[>-",Y R
MM-9WH28RMY2B%N"L,%B62 UI>E^3]#:6X;7D^ZJ=HMP+5*_?5YKAS1L*]54=
M*_6O[%@RYQS*/,BB'O(>^SP'$<@L63 8UQW'9.A6=')4(OTT9((",*(LQS#>
ME+:@91]\O8>B#'>#5-PF%NC93JI??-X\ZAX]R65@*>J8H&RMS58,:E$?3UP=
M86+\U2N!L+.8$@CU<J&?R#72:2Q-O_C9_ZM,"Y+E67I/N'B*U 6?N',XQ0%0
M5"4S*8M$&!ZUJNEH+OML3AC<?28,/B$ZJ^0Y()")IVY4Q2IL$BHC>I [%@-/
M0_Q.]">?PJZ15_]5NQ=DXHM@62)KO@/O)UZ($G.#S"K0"LJWZSWUJZ9U,)=H
M6JI'3J$L2WLIU\W!')7J5\4.@:\*7E[90T=[P>H&D?TRCDWS7\/?W>UUM[?A
M]FX^T^W]8LDW4Y<!,^Y9BP?<!W0M^%8D5> 35_H:*YE)OV:9_I0!BF6VQ]R#
MI75!/<!LW:C<&R/SS$PYO]F(8+X<B;$14.'+K+2"KEK> 5(;,G!0)2[O5F95
M'*51IC5MGJ$Y+;N^^P!UT>CW5E[20D".\099^HWL'J$-4.VK5^B>#[ F$#Q5
M9GA53$:6A1O+#G8V,QQJ*-(?QQ44U\#0@#U[1V4V2G,V":G(W::^U/X=N:XF
M!H]^05L8/.9[ QF'Z-NL$X:H**ND)!9'8NI;H%J+6!X_XW95:!3I5692IZ-6
MD1X'*H;"5X@&.CHF^>1:<V6K/CIH24W&RX]&KV$T'T1T01\FZ&/7!7W,C?H<
M:)I\80CU&M =%!<:6!#;CL8C%/ZT]R* :QJAM3(K!F/+V8@AXA3!QMF#$X5K
MS'/^M$@WRN0&<#AF0=Y'$PQ9C4T1&# W15(6&"#/J_#MS"8.08L"[3;1'DR@
M/D-5.0^=%ES()+VE:!QVD::(C)2ZR7O3)7C1@@N4%Z.]D4Z);$SN!HYAX2Q,
M8J18WBR[H7PJ#)I/RUZ!OA(#4&,:1 M_#TBJ<5086=0X0F<MAJAEI!L]39T4
M+4Q#@ XKDYB_RDZ%AI.UTV-,_HJP8$.Y GK?U1;P$2MU?83626P(8^:HN(AJ
M"5.9*U'#5JE<0F=O ZWZC_$9BD2/8S$)@F=+9PKJ8@_F;%B@+!,5?A]IM+6R
M"72*"N^+*!H5LP&1DU%$OTN<4L<NRF\#D)^T\Y"3?O79X#ECV!!H1F,$E&7"
M!1$6'EL-4>I$.0;GV"9KD8MNZIME;8&.G63?4$=P4=TV73N;E$99:*1#1&%)
MN<Q-'6$TS,,,OOH+O76O/YY\/'L#R )4*6QY]H1T['EAQ=VP3S7*!SJ5=%4;
M6,TNDU0%+Y-?7M%4)/ND;>L CD!ETG#B(V5P6,'.RWX_'I(*3?2UJHJ>-GGQ
M-6&P6F09XR+1WT@%+3'=[ &<9!Z@I]ID+E/*C$6_*%]/\8]0LP<3IM,7.B@F
MB+*@'*(UD$V1-NUEUUN)ALS(PF<DNFB?)+\2L94E/R8F8^=VU,&QCCI8!8KV
M@&P"Q?94+%=#=(4G.*%-!;L&<.BEJF>"U8$Q+0[P2]63&([*0M9^L*@?UK]&
M*7Z#*NPSP:M*#U4X-QD+4EG3?"NG@+5"++>-GB3J6-CRCNR9"9.M()$R2ZC>
M$>VO'WVK2J/=R$$4Z-0$20B=XET8@4+$\3PZ@8@\5:0"%]P>$1;;\CYA#X5!
MRD4IL'J]"L?(3!H#/?DP0-3V7;51!/@+4MNKM.S:D_;,RC<K<4@0'\@V([/5
MN&T$R\7+"_.K_M<D-M2J0@B.YMY(^QMH,'NM*@]?G'U1=8??J* ("LNA=AQ5
M; 0%:8 PJ4Z?JZ10,"6<^S EYSO0[TY7&4C\II(9!Y>'WMY6ERYI6<# _Y&5
MT8YK /*\=LD'^4URT))9 Z^2K ZLOR"=UZ%%:;+!K,DJBL.)XV;VJP$@(TG%
MOI64IG9&C..O$F2G_I@4+ZJ/ANRB@B2 S+:KUT 5<3:M6;]?BPSAZ#%=RYS5
M 6/BY/ .BBBAS56"!O4@97L6.06L/BHX^9(U[6C"Q /< 9)N*0FJ]O&;F+.Q
M4:N1JN9$R;#L#\85DHZD5#G<.$=]I"J<39\3($L61$@+/W+B-J*FSTT2Z)BT
M!LZ1.%K=P[5^\S**J2-,Q4F&)2K424D&1.Y/8S*[3$5Z).#H"37#JFSK0(R*
M,JN",%49+#WNQ&) ET4QA3G827VCE*L>Y<P?*9P=F$U))NWJ/?6<7I3Q -7G
M8<C3GJGV?L!8"1OLH>^5:J70#+4HGXB"5Q4BWH@H9IL)AE<Q^"G>:?)\'K"<
M949;(YFP&23.4T^JO'?>66/6(Y()DW7 FT6$2( H\2<43=)$ZBJ)4]2,J 7!
M#W^:"!='RH0AEXAQ/OOR-Y0G'$4"_IJN0<]"P GZV+@.75H2%#J,6%.F^8E+
M1-T40/^CXS>H:Y<54#O&1&-M3N?%5#')L!HS!C^NE:U:"F;+^TU+6/[D"\U7
M&"3Y:ZD":JG+,OPJ6'&31#?UU36OZ\69'=RSMBJE>LD0%]MJ4S5-DN\NTWYQ
MBZ YLCH04'[RDLM=]V@))\WRQ/[>]D87^WQ?B\PT2K*;+V @M@8)6]%02_?Y
MA/D>L8-=ACJ'G7*$2ZI3I+*78="QKJ+!.<(H6L15;C[1@CX,&2F!"?M1L8$M
M1Q,_V4I\HIK((<@XIR(E(XP'9U.PR1<.K -5,U79($@$*D*,]U>I(Q@B3WAK
M%WM092J-V5CMS\3!VOG-Y'JK9C9PL^')BYRZ/)3FD%?E0IQS:Z[.K3WGW)JG
M<XMB"_X4F.Q9K(A9^+YD9;6I6[,I2TBM&S;H!H."AIZ(L8JSMNXST[>PS#0U
M54..=?D#)4E4M9?^K$97<?\J7=D84!\X,I<2)6.@'L=J&%S+7:K%"]@U1WFW
MH7([<3TF=/P-[:;KG LCZXL0UP(C!0R9#66?:IU8U0W)*S>CX)6(C:-+C4"0
M43.I[L>1I4]73=DJ/=LJIKH:=I(33FBZPH2F-;A&1U(E<U:)6C.RE;C0717R
M9211SH=C\YU.'&&ORU2VG<K<TY7"<+*>4$$QLV95"J:R*MCV/)!S64$16I>E
ME\4M^U4Y;]"8T.UEXH!VM7BL$)#E+#+7[!>PKG VA*CN$* T2CI 78Q?U4?_
MM_",PWK"S(^%$FCK(,7T(RLFTB=O YN7XNBK)'.K2-AXSYX'_'.BSCT[OIH+
M?C<68CT$P<B86EZ#4/FFGOADY^RMQJ4\!2U.7<S7G](\?X/%"[S+ <!T#>[H
M!SCZ@'R<ZF2P@$9,VQQA@<@!">JY]@-0]$48W42F7V;CJZHLX"T)0:@-PA5
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
M-M(6<[ZHAA:JW[ .6*X'OU-9V^MJ$E%-0@&BINM17SEO305152&H7J(>@R)
MB<#&3FC254X![1;)=%<<[$Q'TU>4EZ@!7V^KF[?:4KT $BXD$87J]CVQ+)/S
MK?6'R4[28TH7\%5"6*++'2G5J18VKBJ:5H6DZW%9IF 5UZ^V\LVU:DOW,-#J
M..G\32$S9AEF@%H)K!D%WB?/8WZTL7/W.6#' XO6J5.>I#4<#39-?&HHI'P7
MH%Z-K)(*AI89"*LF75;R26.=[WJ@7(2<"ZM>\BD8[,#+6UN%F88D<IH$%TNP
MN6? &M =I6N43Q6GFBV@KKU :BY8M]W9OXOJ=_8W.B"97 )^8+:>YK,3$JH=
MH.C;V3"</XM(2E>?I$<,7M.=WW5)Z&HXW=Q1M^.L[IZZ:(3:BO!BA8P;[O&E
MFB7GQ@NDLJXB%-14G!"%T=4:S.KZ+' )*3"515$=ME<T$L<JK\>?F)><3BK%
MMV_D9);GJO V3H:SA2BU#%^99>PAC;",:Z]"6&TYV*K9#V<!6G5"M3NC,,)R
M*Y9=B:RJ:(_@G$D-3,.EB>H8#EV)^7UT( PP,$D'3^KZ+3:@K;@I6Z>@\9CY
MZAX$+,W5$ A[^FZ4(W/(:B*N#(-U'\A%3%4?T&1*-NBRX#_[,W05C@Q65QTW
MJK 9CY+C05GD81&SWE;J60GC4Q7IL'QEU -'&9]$(:Y?Z8&!Y8YB,7X'@*<V
M.%X4_N-5M =$!*6#O9;W\>3TX/3PY."3=WEU<'7\^?CTZM([.#WR+K^<GW^B
MSP<7_^,='5P=F&8Y>M85-7I4I1D;F;Z)(:"8CRA7@M1D]V&DD"?_\CT"9&>;
MA0T4G%DTNJ"H9<2[CQA'T6EO_-.WY"0TN6+DY,<-U2M-C:^<?#P[Q092KPJ,
M8(F2%7#F?2="[BN$W&]YA[\?G/YV?.F=G!(:'IU<'OQV<:P0\\^3J]^]@\/#
MLR^ EOC%V:G^>'+Z&[U0(32\>OCI[/++Q?%Z8>ZEM$5I[.%%L8G% /&2T7$+
M>Y:DMU;*G^HR04*GZ9& OX-V1B+JJ.R!#%HC[%'&"@1%M-@S3B$KXV<=9XFA
MPH70![OD0/\!Y!4:>P\ ?<].KR[./C$-/;\X.SP^ @2\7#$,K(!Q7&4D8*/'
M2H,C.V4:L_!UGJ4!"(89=;5<B1T^H PBO* Z4).B7"J-W*HJ:)RJ6CE.5!%3
ME#4L;3>P834RL/)>"TH(X>XPQ%8N2JQMT]D4&YWMU_(-O=#9#M6G*AKM6+>-
M.0@*K$EB5L+1 %9P/3G3+6XVFS]Q#M@#ELW77U75H4@[>MS4\K,-0K=R*C#/
M,APIPPHNI0H\Z$=<UAND8 QS:=XTP@T[ONBNP3XO,"=33%X.L0K;?Z269U6)
M26.&52%_VGZ!1H6(&I"J7R^/#TT0=$9'0H6(4FTXH=8R=H$EG51?)A1%81+@
M*ARJ-^N2<&5T(YOC;S(H2;\ZZ_>C0'7%JWZO(I[4[[XR?0"!QVV0ASU0@:T5
MQ3<@MRCW$TH0'X$0;ER>_+_C=QX-[M$7'P\^GWSZGW=3?E?O\\'%;R>G[-.<
M\')B=93WGN7H_'>9%Z#,OJ<T%QV[CKJ/N9C^!/ IU1P#OUA^PZ=]=6O$K ZV
M#[S#9+0D\XRQD%4E+56?,'+I<Q@7-[[7%;EU'UGNJ$(8:.DNMU)\)8H2):H:
M"8=45!T8,1BG$F*M3+F<EE[B=6!1H.6MDFKS .K\0#H52C1]\H6D!(IPQL$@
M*H"6+&^J @EYY2M"8%- (=;Q,LFR&KN,KJU-?Q2!SJ_E8Q"PACXW*2C0 CB
M>WLK01\V:Z. "[(#D^M&!Z90.+$N]V.UCIMH><AAB0GBH-ZAP/*!6-^MVA_'
MUZ#-V>S#9#0/5<A6W;C RZ-\QOMA/80[J:VJ;% 506%80J:Y0 YX''#H%%96
MJYHI4F%8 ] HKW$,M(^.#00H4[,*+B,KNTZ+I+JY>4Y1@K.62@879<Z"EZ.,
M<[!;:"7#CBY83V6*S9O!'@CI891;.B76Q45&F64I=:/N9Z(,J[)9Y KCU!#$
MGKBZX630RU4VFZ[@B*5%<8 J/[VJ58O9MBBHK(ZN^-D<NV&Y4S+*B:9\2NKT
MSI#R58SQ0E.^-1$_/T]<!947'YN:GUPN12=%Z_AC=O=B<&$A9W"+M&SF&*_%
ME!RJQ=!^30SMSQ1#6]4QW<N@T&.M);:'T^AZ!1N[)D"M@^E$QOA@JB-MH]V'
M(/M-;<"T7FA(ZJNY'4A(0P&Q*G<)O\N1Y5KZDE""SF5!P7XNTFV.D6Y;;1?I
M]C3BUL-E3ROK&I4\\I'KJ@P6%R96AQK<2-<S5 Z8JAR9]L)@(A:+[%%B$P;@
M=2**J3M.B;)3S+5!,+"9RMY7PDC-.ZLZ0%."A?9]5QUW5=_0.^D0BS6U,3-I
M5%&4OJMZ^84.RWD0$9HWN<&)#H820X?]2M+"W5(@QJBP J7#J#!B<T]2#(5
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
MD)L-S44G5DG)PLQ03(7U?A\3YH#(R;'.^,Y4376XQN:.XH6GC <3 H9M+E3
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
M,6YJ4:+(4W4T>D&H,;<[MK6YV]@"]OM%BRTG6CBFM!XSNU-<7]%B?ZH&XA(
M9=U$BT[W;;>[4-G",G.LUPFM =F;N]5BVXD6CBFMQ\SN%-=7M-C96D*@K)UH
MT7G;V4?18M.9+59GYGE=,E5$;(ZRQ8Z3+1Q76H^9W2FNKVSA/")/(5N\[>Z@
M:+'EK!:K,_/<1(OMG3F;+7:=:.&8TGK,[$YQ744+++&_A$!9/]%BLX.BQ;:S
M6JS.S/.S6LPYUF+/21:.)ZW'S.X4UU6RP)*+2PB4=9,LMMYVX?_:F\TMG)W1
M8BEGGENHQ>Z\_2'[3K1P3&D]9G:GN*ZB!;8$7$*@K)MHT6F_;7<6*EM85@O]
MPN*S58_C*,^%]X?+5EUR,T>G[801Q\;68V9WBNLJC+B<DB?RH&PO-.S3F3F6
ME^C-/:.DTW&2A>-)ZS&S.\7UE2SV]I80*.LG6;0W%QKVZ6(SEI?JS=]HT76B
MA6-*ZS&S.\7U%2V<T>()18N%A7TZJ\7R4KW.GK\[7ZN%*]_IF-*:S.Q.<7U%
M"Y>L^B2B16?;992LV,QS"X":MS_$5>]T/&E-9G:GN*Z2A<LH<1DE2WU :T#U
MYA]JX:IW.J:T)C.[4UQ7T6*WU7;^D"<P6K3?/ED9#/W"XA-*3J/@J_>'3)(H
MN<Z7XSS7@$C.W<;A2GTZ%K8F,[M37%=!Q'E/GLA[PJ4^73K)"LV\M)*%J_3I
M>-*:S.Q.<5TE"^<]66[OR=NBEX9C_%?T8OGC$/C?B?]H/32V'KB79J',"/91
M<OVN;6--+/L\%4TZ!1.UD7;[YU<>XN5(A"&,\8]7;11Y>".-HM*K:7!L_?P4
MJ+8U=57F8@EZ!>S_3=.LBYGL0O9C&12Y5PRDU]GHI]G&GI=)F"S'8TV#KUX^
MBJ/"2_M>6F;>83H<IHEW2;^()/0N91;!Z ?>>2;[,LMDJ'X$:14&AH_XN!P5
M<MB3&5P/WP,QN=VJMCA;#%ZXM+N@ ^P^X0'^*;),)'" -S)':$<)_%^0R:'$
M+^'45(L;/(:/LI>5(AM[G0Z>0F?+G_IJVZ=3G?QZA[X=B!OI":!2V1!'[D?P
M<2Q%EJ_U:6X^XVG"H?U1QG ,NW0,NR_X&+:>]QB.9, 4K-M]\4>Q_;Q'<9K>
M*&:R3T>Q]X*/8N>9B9-(B$UT=^@D]E_P2>PNQTEL=EC >L$GL?>\)W$PRJ+8
MZV[-/H=")B_@&/:?]QC.@B)%)M&^XT*\C(.@LH=/-=O9J(C2)/=&99:7<"1>
MD9)N24K$>2R2!IJU_>+9>.<I=?[O.:+-%\_?.T^IU7_W$;UHQM]Y2E7]>XZH
ML^W.Z)GU>">=J7-X2B7^,7?E(7+;2[DK3ZG=?P\]4VK_BY;<GEGO_P%Z-F\'
M(</>HUGF&0[]2UYD:7+]Z_%P%*=C=&QX!]>99!>'[UW!/J-$(/;B=JVG$!B'
M Y%<RXTHV3B$J;,T]@X0AM?\]B]OU=AS6'0-^>:W?W:B1DD(ZWVW13?E^%L@
M1["]W ME'F11#U"A)^/TUO=NI1>460;/QF-&A"3UI 42 SCO-BH& **Q=NW)
M;S(H"[RU:;\?!3(#V"9I1H\$Z7 DDUP4*=SZ$1"#W,-?+$AZF<S+N(B2:Z\/
MVR'2 5\!\M/)^/"AB-@MY:E!4W@F(S2UCN^>!='8P@O,J09\JCX.6OL1/6$X
MV-0H%$FR^YY6/ **%_6B."K0B=E/8P B;J%AAM;RHL@]5V0UD?Q/R?A+<1#D
MV"SNQ&0I@@&1.T"\1 SAC6G\(8IP+1.9B1CN1Y0$<1G*NUXQR!(E@",B]GH"
M'>,B1O:'HPGTMX9 ZC4"R[_*J+!N#'T]&J5942:$9G-'I+MC,!86<Z'BB :C
MWB![:&!K+5KCP]G%T?'%QH>SJZNSS^^\7BR"KUX'$")/XRA\[UT=__?5QLGI
MT?'I%<7*O&\,C]E^I&3Q]Y& >]W+I/BZ(?HPR#M/Q+=BG/_]UT?(*7+XZR_"
M&V2R_X]7?RO2X-6O5W0*@ #(9_C:"1@('UPTRYT_.<%5 PHE>DR"?"B#-".$
M?E?"3<WB*)&O?OU=Q'!KO4O3_0;?TQM?(7IS9H>IL).WVR:&:E,@7@T(5W#T
M+-XVTB0F24>9 HJOHF&0L&C]1JDW+1[Q"DA0]?8H2V^BD#@2L$JF.2(!F3O6
MI ?P[*?M=ALC.QI'$'&>3@Z#S!B96R]-2@H-4=W^O%LE5K:J%7M1SF/ 8%$1
MP^Z!^@)7%/G &\D,!@3@!E*-I0BA6F*4HP(12&;G0/R(!L+[H%H 6X6]<%*X
MEP\$\&!\+."P(@XX,O)#I7J(@KX((Q!WI*:T^,V'5&1AR[MK\\4 WH9CO(WB
M&'A^-.R5&-Q4;16A@V/);TBQX0V@:VD0"92PZ1SQQS+7^Q%ED0Y3$!K@RQ%N
MZZ==V(OP8 /%@)=B1._:LJ+<0INYL($&-'ZJZW*2,,QN<&<UM-$"'4 /)-3#
MXS/\1RCYD&!H26A&?*N&H'/JR0G,B\LA[*<<>B/!=PW!>YLR+!67-GR9L07W
MAH_E)4@&EIBY[)!_'/V=ZCXV5_K[C!AVEDS2REG4.+F#!D^ YRY*[)U;I@]4
M39I&];W/>0U3,QE('*VB?[:(B.A>>+$4>>']U-TE@NT#1O;^#8L@S.9W,GD3
M 8B0D%9$#@>@8#X<L#<FI#ZTY4J,QHR*0LH)<E@M$>ZC!($I0MD$9IM>+%'T
MBHJS3J8)>8)B%CYO2[.3U#;-8/R$!&I%<T/%<*Z1J^#2]C>Q<JG%9PY TJ0=
MPEN^H@,)'@MLRI!<)8P3L>>3GGTH:3.R("N"Y53P$'H1-7ZDUF?X$<]6CW5%
M<P(N*0LB>&.41<S@?MII=7:1)?+;!!SZ'2"1DT'M%M 53SP'S8#U<E UDI )
MFX*8X4&&=\)OU:J15S/+3)65KLXCCUGGL%EE$*<Y,OMJH5B2 .%$C!3(,W[)
M)P3PCR-9:B32$.(?$2OPVXDSY&T%N-88B+2-<R#&)^DM?'F->QRH!4UL@%Z'
MB?LEW*$ U7"@:,)F[6*8EC!_3BO*:^R R%^=N[:\WV<@1X,XP.<[+1-4>\#S
MP'L'*(I7!X$ ^"F!E,"=[)4 6OB;OB9Z5(@HH;F,#$'[QK7#)8*Q<:M*;L)3
M040.2](&O:,RPZ\*2VZHX_D4R:$-37!(%D7Z:#>YE?(K254C$87>C5"Z*;%#
MOMEXZ6X'$;!%'B\(LE)+,WGTC4?@2&#$48&VS&B$.!,E##N<IP>*=#\JE#T(
M'P8@ ](,<U^IUB1MEH67I$ #(R!5BIO#G)C=.(*-BK@8^/!C'T@S4#Y!QAA6
MK2V+$4TQ0=>FQ%.$($H(B.P=$FSQ6I)8QB+(C80]XVFBF0<QETF95NT5].\F
M-1-2G(;C4(SQ1$@V%&3YC='T5/!%1VP"*03QAVP+B=P@U0%GA"'*)$9LDA$1
M7P3WV,97J:@R$<9.MPVW=VQ$'KC?,/AMAFP@04"KZQX5B'.HB!)HM$R&PRFN
M:6[.:HL)-4&TAB 3@NC9PP31B;OV($$T39A$"&\@XKZ322<*F*R11&J9"'2^
MQ(1,"DB 0\^62#^#IJ-AH\E'7HXPXP9IQ0 PER^U)=[83CE^ UD\["E*2J01
M0+9EAG)=SEDZ@TCVO8^ 6TF E.V,C9FMVMP:0>N&!9C]I\YFE^54GBK*E7B*
M%TGQCY9W-N4&W*F)7-9, !+T!C+-:Y*_F/-PZYQ95H&9 MA6:ZL](8#-8/[A
MM)BE5'HCCMZST+N7"&2$P3!(;S&%RH>YZ#25+$ARS# -HW[$U$1)6 ;V6M:?
M$,B4S-3R3BHIET7<^\\3I]3CTIP_=935!T&&&ZUC1;/AIX)/DWF[1V.7(P0$
M(C(BKVTD0HDFFO:W^.S!8BJ(+JQQI<-0'A.PL#R-;;//=UEZ:MM## A88'N(
M'$<PK_A+,]/0YX2Z&;J<:!W,9DCP&UC,B'QAM14]CLW@B1FGA.V'B,W9",#<
ML!H7I#L9HVQ-US<DB7NL/,@3V\.%6H2KSD.5NPXVST 492Z;MF+KF"S"P[I0
MO$II_#IZBKR)&[)^0M9YENJ R^ 1V:[=),(D11C#^5/FZD_9<?Z4^<A+RNEZ
M!#H,T.RL9KF9ITOV&06B8^5S19DC29,-OJ 2*39O.M?4(&=#4U]*IK:*I^=U
M1J+8<Y21.$,,/K%X@C9%!-KLE=?L7O@P2RSP%9"6#,T]0Y+6E%D>D23G4 F8
MH<#Y0""CE56+JJT(J*UB3>1?;MPD:/)&@^\#JP+JQHXATOU,XJ#*S.D\,;UZ
M@AS\A]5-G"!/?VO3?Q:!:JX\88=-+;+.@KZOIV(HZ]=S,OW_J6NG#,):I8Y[
MX?CP4AYZ\X#S,2II_WC5?6IP?X1;S%M75RW-9A#'IU@-6<Q0L .2\(S+>/W3
MFR5!08?S"SA>]B@\(WZQAN 0W"'X8HZ78\D=ACL,7UL,)V/(,^+7 [1)A^8.
MS7_P>*_20L0.O;ZW4N\BLX'J$;N_BRR-0^_/EG<NRMB;44/N)95GG%\'HTU_
M<W-S"3;T$F>>UR%N=_V=[O82;.@ESNQJ *_#S/,ZQ?U]=#\OP89>XLSS.D0,
M$5D"KKC\O9S^%#%ZL?](!TDN$V]&;5B'@]]3@+SM",G*'Z(3S-;@$)U@YDYQ
M/6"Y^J>XOQ0$=?DM9O^4& 9Y@$'K>0J"67/M.(>"WR.8;3O!;.4/T0EF:W"(
MCJ6[4UP/6*[^*>[O+@-!77Z+V:=HZ'U(!]YEBF)9<[E8AX#.7K9:,SNQ; UF
M=@Q]'69VI[@.,Z^AO6R1!9F?/4GLU31X7:/6AT^&>=84VD<I[RJK,O1^XF@*
MG;-43UZ,L%Z"RE;'U,I87F/F-:=68FHF&C]A$)6_2,F)F!!NZCK %Y,U'6@-
M=Y=!4&GXF?1N1(SOP<>?6&Y1M2K-0%PA&@LS8#TK*I:0YE1J@&NUF!1+4Q0L
M4#GV6/J\O"[S@@MQZ+3*YZHR/]<DWLT%3?(8;7!5Z_$_99<>JGV@ CNH1%G,
M'8]5+2J3E&SN$_>KW*D7":6B"%5%B[Q">KQ5,@FXT'_5DE=UY,4;S8533!U,
MRF(NDR**L:@(%YR"IR*S-"J3;I5EYX_#%"ZJ*@-B;2>3&Q,[ZM&.N+C?9E7"
M"B\XIH"K#E%4WV$H)1:#;WEG9=98 4=-5*]1:\H2]B45V+#JP%&IES97+L$L
M3201WE\ $5A!/,8:)-%D(5I3?["94-U+Z_0:OY_<.9KD:-+3=I#&\F7&J?D8
MHL05$+"*%!9 9EX[$%$VXJ%4E8>#,HR*JN[H!"63V9)0LDD@+(Z4V3,]CI9M
M/QTMLQ?IB)DC9C]"S)ZR?QLR870'/(*.[5GE\'],PMJSZ5)5\5-7Z[1("C[V
M.%+%:]3T2BM%9J_?0:ZZG8=*7CC)<TI=O-M[1"]<Y-PHU?/9519F1UF28F&[
MCZ1RKEC8_?Y/G?O*Q5;508M"7!LC9QCEHUB,W\%=I7JK7A3^XU74Z;[Z]:20
M>&]:WN7QX9>+DZO_\<[^/#V^N/S]Y-P[^^@='E]<'9R<>A^.3X\_GAR>''Q2
MOWL'IT?>YX/3@]^./\.)T\>+XT\'5\='WN75V>$_?S_[!.@"CUQ=P>.FI.O2
M-Y:JP*EJI-?JYU/!]).$"E7.NRS;DW;*JGJ^#4644'%++!99LP9B#>UW];XJ
M++Y7;5:0]X@1,H?)<IRS% 9CB"0J/4AC+,S.0P KP+=*6-0NO;$[.9THBT&:
M 3#"J:*L0,6)Z<R2=L\J\]^V+L1;K=:J6LG[;>_1C*;J.?86"PVL)%8NES=1
M6N8Q5]/DQY"S6OO*Z24-'Q"I@P#H/1!M*J>NRHX2#_/Z95%B^3FNQ%F5JZ\@
MO]J%_P#\55V[MM5PX6Y\P,JFV/M H4Y>J(KDM2X&)Z;K!"$)O&/JXN*C0_$M
M&I9#+REI]IERAHU=9%TVZ-5#"4_U/E(=!2?0#>;D"LC87FFU3PIO7-77D*45
M(_U%%>E3E5BGJA6RW(BE>U7#DBF:HO&[NC.J#FTN@2QQ9T6JQ6B=!\G'?!SK
M5PYQ%:L>TE4[A.MXG6;C92BY\4(*K)Q65*RZ+05V]V" *)6(:FN;VN=DBRN
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
M*.FGV9 9$["A850@5M4-77Y-)_<Y0X;5"+\"A0>"E1=*((%#N,(ART 43L4
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
M".[HME<\7]GJ,E9X748^+;UR3EK_^M+^U+[GQ9&NVYUFY[+=O"&]^^9]ZRL
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
MK%.&\^#KB;.D<C%26WG-.%E8Z,)5E)D:\1--'O:Q%7LB^-XOI:K%Y&\Q.5W
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
M_(7O1/!E"O8GH7/F)XDL3RUN#NE1FXTZ-P5_SK9U8X]<PU/99ZX49:X4?^4
M[> AV,&Q&<RF 3\X)*J.N3"RPTR@MV"3V;R'LRV.0#'&R;M$X^-S$QS&D)E-
M]=TY[ 5Q0P\FS/"EK?<],N%9@61H6)X-Z\"C9-LF8WC PT?ASQ.8F<_?-WO%
MQ/6MJ/YH8O_7V/[$'OBAS7?9PG]FL0]\ C^*-]1?OJ,P85@E'BRC2_MD!2,&
M+Q$4GG@6S'=BPR8_4 <&P"-J^#ME5>0LSH/?'"MV:MATFBR\:^1*[GPR?(MO
MHY! AY0R6]H7]R, :SJ.@3,C4$T 0A;+KY@NH%,PK9](=#HG76":A6]9S"NA
M/Y Y$(T14T5">_%UJ3/"]%H3OX%<R:3?.0%AB!,UR(0?7R20.K2\,<PC/N!@
M2,;!Q$E'Q&")$X\NN"H^FH)"C[^= _([\I:=A;QC[(3#>BBLA&#I8];([&2%
MC29X/<I2B49$D0"#>B:3S/&\L$0C&5(3F0JS5Z),$]MX\F,>-R83F#RS1;T0
MN1#_ *L4=ZO]E'P;UN,^RD:!.8PMG^4O1Z]DBSH$:VX)VM^9&#;# 9(FQL*R
M7<624B80,]X9OEQRSU)E9G\5M.2Y0T^4I>6Q+0(IBL*0[SX;"<CI]@,#!@0O
MPW<=1@TPFT./#6WTW1!>,:*8K;0@Y1<8;.A1YE/$V@%I$SVBQ>\P0\KXQ_,P
M"<J#K\%$< D)3/DL32N)2+02>/;3$S  KHDZ#\"E[(]B5:A Q:J$UK#0+7!@
M*BQAT;6)"TR16 %/70)N.2=-T'8&/U2,R:#A.(N\(78+AF*I5&S3D=]PR'6'
MTT@?=A77&&DND7"&;Q&2!=_Y7+C0X9"; @X*GR4";)-E,Y3!CZC><5>%6'-<
MXH>#433\$7%4-\%$HK>2P =7^>Z FJ''0TN \RACS;/\[_Y2^$8[G0;^%=#6
MDHRW. 7D3ZY>3!*GO+&IG),>[G_BX7@Y] ?L@L-@A)(/=M0/4*%8,!7Z:)DL
MZP_$J.&))#T \1C5 A>?X $/;-<7[URZ+*[[^$X:MN\FQG\T[- (XG>G&E0A
MZC<<#KM:L?P_V$68J#5F=M38,"EF],UT+4L\?*)@7L*_"T,@?M'PG"1OJ;Q
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
M3-(6%R9G@9KHMAX&*K[3Z:R!'S?:F!)A]C*8O@.>[2M8B9F'+"3,+\;,F5G
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
M5-!HTA]Y,PJ\;&N_>4&A]FVPPQ.7/LA]ZU_W9^W.5:MS?X$T2<JI <7[>,#
MUV?5M0:=;?DO$] ]9WV/&M_/C"&\Y8(8]I,Q]7_YN(Z[(-Y&QQ]_-<C(0ZWS
M$W"L#FAA=  <X(5#)/6O[PUX$SZ9M91?$P>)]^]2DNN%I89%4L)>=SOW9[WV
M_[8N")L"81]<-[^V;_ZX>(9.\K5Y][G=N2 +7/F!I,'@5Q^$I//P$9#4)JW.
M;^V[;N<K *=Y0WK=FV_W[6ZGIY%VYQ+83SRZ-K&E7>RO0%TGXD,C,!YB0]"T
M0 \8TPN0439(]C?,>O.!32]A'[HW[:OF?>N*].[A']RE'NE>D]Z7YEWK2_<&
M>++'!'SM VG]S[?V_1^P93#0Q_F=V^M*K[MWY/Y+B_S1:M[U@+Y7,/NKUF7K
MZZ?6'2GI3$_II-FY8@J+_.J'?6X&X _+*'XP5MR7O96I'[9O5V=D;G)7L+J&
MIQ.A#'2VC0#_QYOJOCGXN?F7 M9#;+JB\@ZI' 7PT+!7]&7TC8E17#@.W82D
MKY]H1*$FB%7T6<!2/Z"6NS4LDRB 9 *0?="O.1B$X]!&UT]1\6BIR,N?LKC.
MR+7!<O.%-2P#3=?V<G,$HG1;X*<"^\^.;(+BWBT_%JF6 5**PAEI Q835A3.
M+X45#^>=PHJ']^23[YVREL,7?&E,++#W7B1Q:@TF1?9C)/L5'5H#ZV6.5N3.
M#;G%";6LY#Z -[=GK_]8EJ"V16V+VA8)WZFV16W+"6W+,=R>LPUG0(D1D'\:
M3FAX4\+S+PIRI6M+DY2]OL&\*O5:+^@+94F:?G<XR[?^$][WUY\\IZ 99Q2P
M8V?_*\OI7,S(YA&LMN^':U]Y3TNWKI:T6F5U+>.3 L/BR+NLJ; [2#7JE31$
MZ8VM$85_$^=FW/O:M@QK=8V&C!+0]11&SAZ%Y1=1*,#U)T^D81#+5)[I%:U2
MKVF52E$A\!AE6G5':-J9+-,K%:VNNM8?)YIJ:Z%IED*&:5QM1QPL9(VL<EDK
MEHI:L;;Z(J<$)#Y5<"VMD-:HU]="UQT-#,NA9E2N*F-8);HKE+"U@E8L;X"O
M(RV,)@E6ED.E\1)4LA,Q]7I#JY175S,[EI(..9=TTK@%>5ON*8ZL2)S[D16)
M<S^R(G'N1U8DSOW(BL2Y'WE7/N39H=<B_SFV2 V\=,?8S955K)&LGIY\^,O;
M<D]Q9$7BW(^L2)S[D16)<S]RYN<)C;5[7&UVR(DY0Q?<O$I:5]L>/Y0TO5+7
M]-KJ;CTG!0]I@9FWY9[BR-G+GO3&8"\4$3X9J2)_I?ID/2O"D^U8$=@>]1ZM
M ;SBUG,?+1.KX$B!9FGY*&_+/<61%8ES/W+VVG#M]H6KDU>9GDS\E<OG:]>+
MI',DG*..F%MG25<*6J6@;GU(,G+V($WOMY4M2'D!EFV-O$I!/O/N1$?.'IYK
M=\S:(IJ1/53+#:U:5VB59&1EU.5^Y.P%4GH;L%4ACGUH14UOR&>WR9\RP!OW
M^$AE=\AZX?CDUIBR6O^6$[ADOM"W%#"7EL'RMMQ3'%F1./<C9Z\FUVXGN+9;
M&4GI[I#):"&BVR"A$]]\=?A#UPIE7:M6:])ITA,=.7NHU@X#U=>9>WI!*^L*
MI)*,G#U(ZYG&0?8 V+)6QANG=76C79*1E9F7^Y&S%TN-+:,A>Q$XE4)!*TAX
MEB5_+LCOAN<9V/H8.QMW)[AK/FG]H-[ \JFI;E0HV9G[D16)<S]R]I4]"YLG
M8[_L6T:"N>F80BS'4OG5H8]:0RLV5#4S24;> SC7SM9]/3A?9\K5&O+5*3K1
MD?< R\W3YM8/=60&T:)>U&H%%9"39&1EO>5^Y#U(HK5S(_<E8TI2YN;*G^-Q
M1S'>1.&->+G%G]A60 SSWZ$?C*D3J'B&$I>Y'UF1./<C[T$C;IZ._;++* 0S
MS]U L=R,I?*KXQE%K'$LG;(\T9'W@,VU,W-?C\U7VG'J1H D(V=>"1Y@N7DF
MW/KAC*P@.JL4OPE6C[U"O#2XR]MR3W'DTRSZ>)!LA0X-2-L9N&,JF2>_HMVV
M!'A<W1 \TPU*[=)]2E)" 44!10%% 44!10%% 44!10$E4Z#L(LRX^4V<]=K\
M@1?#G9@;U]\F["V2WDL-7=.KJ]/X%*P5K).PWO@FQPGC5OZ$AT^&;3@#2HR
M7-$!DS>DI&L$R2@7_TG#9KODIF)J4\^B+A0#QN[_[%'/HG[SUJ-#ZGG49$'\
M92U@=],!O5K2:A7Y\H>D&EG.-K%Z02^F0JJP-:1VUDFV6JHK2,DQ\AY@J+\(
MPY4GZSN6:'I5JU5UK:*K:^7'*=5*.X+3SJ297JUI55U=@SI..)77@M-:"1:[
MAU:EJ.GE(G@Z*BM-8G2]D,NC5]:"UWKQGIWA:I:L4VIH>J&N%6H;&&3'GK0C
MK2BJOH25#/5728-AM$I-/HMHVTR2G(L[:=R#O"WW%$=6),[]R(K$N1]9D3CW
M(RL2YWYD1>+<CWQ*));_U)M[SB39252R&P$*HOG=:$7BW&^T(G'N-UJ1./<;
M+2V)=W'LD-[-0D_D<>I;7S??7:-VO:Z5*O*=4)SHR$KRY'[D/4B>](L1*9+G
MM&2*_/?GDPT."4_)0Q*0J$$EB3I42H)E:;DH;\L]Q9$5B7,_\AYT8?IMJI>L
M\%4]Y5;W#WYUP;R*G.UR3G3D/=Q22N].D2U*7]OE6N%3DI'W@,_T!A6[B65D
MC]5BL29EN>X3'5D9=KD?>0\B*;TYR:H@QSZ$35U*XTW^I(&TZ(?ED%O/>C0"
M2FYMV"$LJ"H)QJ7EKKPM]Q1'5B3._<A[T)'I;7.V<BOG[D=QX7P5>I;S<$L]
MRQ4ACPY]8G]Z7;. >K6AE<M%Z33HB8Z\!YRF-[/( J>_&79(7P-3;N/5M6I#
MO@.N$QUY#P!-[VCQZOC'7L!:UBJ5HM:HJ):(DHRL;+O<C[P'D93>S>2%^,>^
MA$U=UZH573IA(W_V!W9/>(NU&]])=E<B#Y4Y,]T@&4IA*J HH"B@** HH"B@
M** HH"B@Y!<HNRBA5]S\?M+^VB?,*NF5M7*ILE;_X!<!?J3%]118!5@WOM*2
M-S3*G[[Q0J<#76H54((5F&[8MZFT;/5LBKL)(I922V/JC>/HCK#(8B5ET2R#
M\RYKL^X)FNGE[;=OW+'7+@L*FDK2SL.Y\"*<]]ZMH:%5ZP6M45G=5%Y!.<]2
M-KV7S7;9-KNIFMVH:G5=*?_3AF5Z,Y+7Y]CLIGM$56N4=:U8V-P+5"@].I2^
M$)4HI3<YV2YLED$7BG))J^#_:ILW<RSE+WAV3*![ 7/IG4]>RO7953>+2J.B
M%>K'H9I9N.Q]T'?-*?YK !EV.@A[8_2ZONO!!K-% 7]?%)(4M>F0#\"&(HNO
M%_M2*/P,9 4T30S0:<X#$@ &X=-/C?J]><YCY6< VTF4#T2@_BZ-O[(9C+DH
MQ&!W\'SR9 4C B[+A Y@\UP2C"C G]T3\]D],<,QR:7KL+D@27A,@#1)'!40
M%\I&QB,E?4H=>%W@N8C=1VI/\>6!$<!C\';XBLT&@E$\"N_T@<83VV*?>-0=
M:@3P.QB1)\,G=#B$9^&+\+,[Y#.S7?@&_-(/?9#X/OS!@1E- AX-U0N\[^LY
MN<.YX8@=-Z#P^=]_JA?UX@=1-A=+_@Q##\<DEL/Y%1CM?'_PWF5<^!XVQA@
MT2:&,P5L ]<'\$5&99!L(,H>/,,F$\,+XGUT'7:(P.@RM!S#&5CP"",4W@#T
MSW<^R[5Y.S->%EIE-.F/O-E\7H[]OWE!W_5M V _.Y A]ZU_W9^U.U>MSOT%
M+CPII@:PJ]0#_KT^JZTUZ&SW?YD8#_2L[U'C^YDQA+=<$,-^,J;^+Q_7R;X4
M;Z/CC[\:9.2APOD)&%8'X# Z "0N4=\!U7]];\";\$D)9/S"^U]+?->&5X/9
M5EO(%JXOY 5<=SOW9[WV_[8N"!N7L ^NFU_;-W]</(,D^=J\^]SN7) %O'\@
M:;3_U0?!Z#Q\!/BT2:OS6_NNV_D*:&G>D%[WYMM]N]OI::3=N03V$X^N36&Y
M5O@K3B7B.",P'N(YF18(?&-Z 8+)!A'^AIE>@^&;CY>P^.Y-^ZIYW[HBO7OX
M![>F1[K7Y++9^T*N;[J_]V!?X,4?EVU/[@V23+W7?0>*1^9+]OU/!?:?9R?>
MC37,_ B/,Z:H[IL#KL'&0%7[!S4\G[0<$S1M\M@V!<)[)\7:*BCW8-L-R(K[
M!AD_^G\!2*E9$GL/BRE:[X;6!5EIO:8!O8<2)X8_(M>V^T0P@XET)]0#UPY\
MHB:ZHU8 KNN%))';A2!7 ECSDVJH&XMJTW-=G(C+";R=QS,)Q24]&?8M9>3=
MMV%>1P&M/"VI5(XNA?/8SS\D@<1R1*37YBTD$+&D2?<N$ % *#5T3:^N/AR3
M6AKN^ZHREX9-\]^A'[!8+(:Q[R@0<F#9E#P3DRS*#1\RTR<JL4?Z4_+VFT_-
M=_"PU&:0-+9 KO7_B8Y\2B26VL0KL2E?T8D'^H*WJ\2#Q>;8A4'_4OTK]V,0
M5-<N,[UH$'3QK#1)OJ9C)HFW=:&O1EFK5E<GR9X4#O*,P/2JPFN8I%DAL*8W
MM%KUR,L)[]M&Y>)\3GJ[0W*'4\0?P/ D3=\'HU027.>9H]:N0?J,HR*OX(8:
M/F7$ZPZ!=(QR2=JV?F#',KIU9ENEII5T)>,E&3E[1*97&UU'QI\X(H_ A%^4
M^3UW&#QAJMFEZP>^DO>[XJZRKC4*10D6=(HC9R\BTXM+KB$BQ14<6*6)G43#
M@'H1"R994]\Z:(NX4];P%I)1Y!8G^[L2H:>46,R>H]:NMK.B)^]K30LY6_.>
MZ,C9PR[]T/4%09X-[$J:7BIHC?J1G[4=QJ9EE9G1F!4B/*TQM"2 SC,KK=U)
M=M$F0GIA9:3ND-U$:CKF[X;G&4[@)YJ/=;U+V[#&V[>DD+3MV(F.G#D<:^DM
M8]<PT?<"QTI!TQORH?$([/0[Z@,-*!/OGPQ,RN^K./4>^&GKL\>F;;M/R%#
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
M[QJY=EU8@3&DP92OP!V/L>V"8>^BXW<*3^]+=O!0$.P3YP0#<#!$U ,A#"=
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
MD[E3?19Z3]!S9(%;X U&4\*UMUBS#8K2%G;!) Q8G%6H1?SST/* ",&3RY:
MEA:>L.+7^QBZ91.-K"M0 0$)G=E?-+[XL8$11AY>1(.0[W)B;IH8$(=@@[JV
M[3ZAQMKU>?EJ[9AX_RM5XEQ.8GDO=]^KS]+^,JAY<8.((?I%VC2R'_U_0A<-
M9B8Z&-.)DS3.;=QXPZ Z/\T01EE"1,QLLHW,A-U1[#C>>8"-V1^&.(*+!T)P
MF\E9X;^ @'2(X*B9JDB*4&JQ!TUPJ0?L&-A#+2)^TX@?HN#TR7_F^ *YP+=@
M6H:7S@,?%KY@.3$'Q;/ PT7.71_PVWS"7$ND316?&;B>Y_8QT,M/D!-_%>H0
M]*K!IQ?VP4-G*3@V/VH&+]4F8(&/HT"$XE[%O<NXMW0@[OV6L&^>,8,?3D34
MJA\G%0%Z61B7H=_@Y:"FPF:*OC8[H(P"QMQFVX0/]I%LFY7'$H=4HN@?)D!$
MW5S8#W36AD%+#Y7%'TY$+006:13U;S",Y+ TG<D$,U_&/%8XLX[[%'-.XAWW
MP8%"PS7 6\Q3\:E/D[&VXPZC+^V5(XE?GGY9?<UFF,];=QS4)[]<AN3H -;G
M?\'()SRF8=(&IIPLQ'BM@)^M\D H4\:V!2\S6928'Z7Y/!@/WC],C?F@@;B'
MSS'L472KG6#$I0GU,0 N@H&:P#AXJ'A2Y$=^FX7>.LO99$XB^FXF3SKB7[X"
M)ASWJ:<1I J;'=X,PK>!;'NBS))XMO;C9I_H?);<Q1)($L;9^')YQ#BSE1R6
M6S"K*D7 \^# =")2@=EQS !S)UD683":DD'H!^X80S$N8!%-S($XWV6Y!CS_
M&'@B?DY[KK,G'CT#_2%N+UVS.!.>T\S>#?KY:01CXR'/CX B5[-9L&.?"?78
M6<*$G7@#7<0Y$#^,94K$\MC!5"B2P0P\C4$O%B,>&+[AMOO$#7AV>K1&V_69
M^L)0'1W#9!V*+&EX4W:.PLZK#9[0QM05'C%[CRQ1#UZ'=P,#/ 2*-S:. >'1
M11\+R4<G,+'1P50Q2_)<,ADF&"Q1]?(YQ=C$HIU@1,-S:P"$NX3"L+4F1?O?
M<D!NC"@_X$GL#69@Q^N>+0$? <).\>P&IXMA*#.D\UDE7&!B$K[K^;.X%+I2
M UPU^X2?#H'M^%=\((HOY^])R$.VG^=1E@;,Q.:D$[3AQTZA,W!M&S.'(_@.
M1L $_.]LA^-UL8,'_!V#8QPJT7>94HAS8'Z,,#-6G(JR<&-,&Z0S;*;+$MHM
M/QFK\RCF1YZ33P;>@^@'D3D4!U(Q+<$G&)<T8W%.2OJB1'\"^/UMV771^O8Z
MF_6*QQ1Z8+@K =5(PFY]@5FK%BI:M?J\?@Q;SPO+V+@H0I;+*)6*6J%8>[8(
MEMR*Z<(L@7-.#\\3;O'3@K: O73YL(+4C4W:^S6CL5+V9:9U7D'H6CVU4-#+
M=*X5-ND(E^T:2HWT4D<+5#YJDRDJ#F))D[/SBKX>(BOCH(928D.9=F&.+/,;
MV&&,^\1OPF'!#Q:$H$&DVU ?<;<W]'DNBCCH@0$T\1-F.[R];E]WWX%. B/(
M/"?) 9EV\=D1'DS8XM=3P%^Q_!',X<%U37$3P'B*LVB._2['[S16G+R*"LMN
M$@8<VIJS%$Z6 >@SZXGOA>^B2\<\/DP%-(]_*X0Q%V<H"4ML(1<JLD+$E1%F
M?$4A:V;L6=&=46:D]6&?@(<PWX>9CVC0>.:\$8@**S)6S<@6!7.1GV?B(!QZ
M \L;A&.,,?, =]+0XP>Z(8;'K02JT<+#J#<[K>0V++HCW)CF(_,I!C2Q\)=U
M9:VXB:Z,1<MOD>-PQP??VH)(,X!\?C]N37LA/SKH-IGD%I>QDD0=;5P2*&%W
MLE7=V@:KNQ(O[*#JZ??8 >,>;6I^(6HK)BAM=L]X  P;\HQ($Z\BBONA3!1@
MYF88T+D_)/074,_ 4XXS+'4@5!9!9XAGL<3R8C$;<A9?U\@#=:@GCJ,P4A;=
M\&7N$;M>.AN92:%$FF3H =>%7G2;[ >[K\=^>:0C:V SG3D>L]M>("3Q,IUM
M#,15,7$)CIU=L[!@P'TQF.PYN:'@Z(Y0?UACO.(>Y;1ZS$<'.?87>W*]C9A;
M]XRQ8?\-%*/N[$;>W)/)D46V!L57XCUK#)53;WFB8S(+3:4Z[C#545>ICBM2
M'45"8TJJ8[]6H[7ZCE,=&:=*XMTLNK?KJY,;+(U!^5JRU2!S"RM5)X$P+ ?N
M ]Y7)P9A-<K.W.$9GLU%547NNM_B^A\\!9 E7>.$$YF +"71MB/)QF_X4V_,
M9!K(3<IS+_2B.!#1>#(1VIO,S&1?:/8N2;U<9 HH#.#%?]'9^> 9RU7@XXI)
M\](B/RA/28_GP&?)! </XD9EM# 4ZCIGW&0VXLNIHFI"//H]7LAEH4%-Q.PP
M*"U6Q@S:_X0@'X93%H7&%$%FQLYV$K8L>8H\MU7L+O/=;/[:7!XDOQLPN["$
MLXY/4WDR(\N?7+C#9K#L0W9^Q8[ Q:4D6!H;?!?NSPZMQ!0@-EE)!\8*;%.3
MU(\O%$SC(P8T&'RFI >>Q=Q=%B<6X6Q<-T]Q=,5=A8A,@!5O8*&:OPX]#%$C
M,OG];TZEZ#2"IYU&(6^<Z@_BL0L3#*@XR#@< [F<D)T7#CR&CMG],D%$M$TP
M[2=^K;@+#FP=L),]D<<Z#)DU$[UW83(#PT;OB1MG[?F%XK?QP@XS_3SF<K%;
M\>S64/0]\5PTJ3C=87X<OO-LS:''%R5NFO8QT0A31/D(<RFMUJQ3-S$>#<OF
MYT>82\RWGR7W+M)GC>G(C-K8Z.9'05B)@.(! A7G!,SYBV[4Q!5'4$KX_ *8
MD"<,$%B#@__&BI XC.:IPHP)"[9_^*?(VQ=!$!1,>)\&$:?QQ+4SD?:%UB[_
MF+%!/P' !?&8.@]QX@)RF&)Z-B]5X"\P$<X(;PLQ\L?0%6?N#.ABQ5@<*#H]
MYY.973B#V<3OX(]',2 6<HCC.>1SY#QHBU](9^'0QRHQ_+84Z]<!?S5X/(DR
ML1FQ;OSU:'+Q"E;,+1;_YG%[[9<&JVG"_)R>.PR><!^O, O,Y4XDJR\JB=F5
MWMYQK?-W7C,EL3#,8^%>KQ>M^\ 1YU0#J5&OG!4+ +<'PS-C#9"@#]X;C.C&
MST8Q'*IQS'+)P//CF#R8H9@%"GFHE=]&F3(6BGB.H+&$&:.B,!NO7P/OM(0)
M.()O\7-3'YT.%IO6B*AIP\]<Q4T'"^\O\I-^/AS7B#'LQ$A,D/(28EAX+M8M
M*))$\ "O=#)6Q!!PE#7 ;VC,L@(6CE^%&Q_;5\F1XXU+;BB?Y#-YP*[E\JBS
M;]CL<FORS<EA^VXPXFA>__Q76Q7IW+I,0(+#%P&?7(&^=:%@76ND'*\=MUB,
M<Y!$\R=)!.#&I52BEF-L,6(M!Q5SS?3PN,:N03T"E^ AAG#6HKMOL[12< J6
M<DA][2/'/W%7_KQ_<G_CXWUE<_E3,,R?"]O%_YI2FP;#1=P:N[/\[[=Q=3H]
MR2[MSG6"86[!"'M#8+MQ>\^*;SY62L\8YV>6&;.0< O2)G7C"KO8N/3@>$I2
MAD0;5RJNN7''?19XG4@B6J9#7H+ 4J(WUK:E5A =[</NL(<J,5."5Y^W+OEY
M=@0?*^4U-NQ%GEF^8>D*>',NV=>&U:KK;-BQ:VEV ^%WK#KH!-)DOVQOK+5^
M\-.I6VX)BX6)7)@]:VJQN4_QYB8"7?/G?LQDUHB%&9U3<3$Y84!SA\)D[>W8
M-\4KI\)JCZ(1477%_\_>ES8W;B1I_Q5$>[QC1T <WD?W;$>P);57$]V2WI9L
M[^R7"9 HBAA# (U#:LVO?S.S"@=)@ 1(@"R0F-BU98D$JK*>/"L/B@B'*;.\
M4'[!PRUA;DC&)_.&F93G$#S'XO[#6C.>L*7-2I\GD?.CB_1=9!N>N1!K/(UB
M!)NEL.5%:$\:%A>$?@WVZ<4,"DJPCC]0C=I9B\1G6"&2),J-]A<@C?"SP;6A
M>"@12[P<[QPQ2A2+T@>O!L\IC-Z++J+8IR7-KFBI:0D+N*IP@T'RQA;?99@G
M2P-;"]/(*^T[GV "/P2_N^;G%Z1M@ ]/* 5Q&'#*OAD=_>1T1^6G!\;X.-A6
M]^=J2\T;WE+H$5L*22(O=^[PQ?<"6SG@91K?50#)6(>FE#9%HC6Q2+[7HR@E
M;X3%LQ:"#AH\77"MS99HV46Q8)0.\+()3RJ8I;Y57#Z("Z=X&@.S-!Z\UH)[
M#OJR]LKK#GC#L##K*[Y,ZE8?"&.040YF*K@\G+ITM85C M(I9* NP:['.FF-
ML.Y Q3H130D+.U8RT["=)6V=66QFQ(I#54J0XS>/V/&:LDPTB^>;\60Y_#&^
M\DE0C<!C.VNQM^B^\,$#ZF W+N72UJ-;N)_&#Y<_*X_V I \Z#;?*W&^:F ;
M^H@"2XN.2@ZP*#L4HI1=FC%OC-,[ZEJX@=2KL*!.YZ+M#%Y'A1"@,PF"VF''
M%:Y&B<X4,0P^+QX1S"\@/-5I*@=/4VG7:2I;TE1$,DI"FDIW-NGVBDY30;87
M@N"G+[;K_HSC )2'.;"))+IVYZY<UYJ#EY$N;(CVLUGE)A!<:TZGK7[9?LLG
MD/=3RL@7PA 4QT\F'<4"F^+/Z9K##7(>J301QXS0[0I:MXE?%1,;7HD74%:#
MWL,[1K L)[P6@![L!N,%T%C'=H[P1 _O9.GI,4=%"-9P)$1#N3),WXM$>,JJ
MER[C/8<T[IMXE<A'I.;20?&S%^D)\CJBFC8#? :>09*V]J@!BO@[?84N?'T'
MOQQV5 @R+;CK%%52"T?!#1I7BG'FO)30"926(!3.LP$E2<F=%0_;W0=4-A%;
MV+<;5+X;SFU/31(7E1^,7.(T?VK4S)S-S$-1PC=*"3>-8:'!&J/1\M??^;T7
M/IM?&Y%<O9NM2H$QE;+NX&[1M]UW'SMJ9]A28<GK3E<*2X4P))]X"7LQ9@NP
MIZ82LM5,&=*<2LD'?/\=![B<U&QU.\D.;"9:QND7Y^,-%,Q4K4C74)?T7B+A
MC7CKK_#2RU LW,WNHO>+#>U.B7Y''?1V)40DJU9A%7W]/A1@8_&,G\(1;!8U
MR\''/3"J?AG'/DXD"+(LSU+2-3-*NE;F*;E5D'1MM=D=J:W.^IW? 21=<N^*
M5$I60-)UVFKO@))N=6)S<DUS+>E.5=(%]GD.ST)T"<1HE$UQJ*U^"38#6GA1
MPPQXOTV366RJ!PI2CRF"%9\P$[DA6CCK*NW\8VV&HU!4_."-V4K[BY0'X10-
M^C(B2O3-@.]RIV%M&=2L*! 8#47(%C4FO58] NH S+\<##2,CQ-<1B[UWL!9
M(KXSG5/F::;LAU%S8PDI%X98].>]W="U+"P>:P'OK)3\AA#\A'W.HF/>-/H_
M3,_(Y1>]=38/[G;!@>XTUN]V<0:;&=3ZIN^V5^QN8Y*NG*VV&^N)'N%64W!)
M2(L#.C6PNEZ#RT?_T1.84&7A> K!V&$JH1Z3",C(,3Y.?"/VS0G:TP!I+T)[
M*0KDKC^J\+SXE+C0</<[F.>%9C@8];^F?;AWUJJRI^A@CDC1<-K1IK-WV^*[
ML:"HR69>:?'>4IM+SPV/T9[8>\6R7QVM@+::B2\,@M8Z$B <9+X2B?ZA2?^+
MQ:(YZ49KW:\GM@?B(BDPC?V5<+0Y,?!A![8'Z3__I*3;Z[7\G^7PZW&.XH@-
M9"4#6S$@:Q\:9&T*5FT TOWXZNKF]I?X/C\<CO3U61=[UDU9SSI=D'R8:-,_
MGASPL/4+H)WMO/]A.F5@9BQ=0I;?T'GM-BQ]O$+KQR.P2/#F9"0FK^<OJ[B?
MS99PGQW>5( -3_PIS5P?-'=NHP64YX1'LN^8#$6]L\%"?_>QJW8[/;4[&JW9
MXH60].<:$BN02$=$YF3],A !0.B,6FJKO^Y_'OL(<PG#&?WOP,(P&LK*ZVRG
ML=@912\N,%HN?LMT247EP<V*-%XZM>V>XYO/Z8BEMM9:H@89C%_L5QW>"T32
M20829LZ?DP;*F=99B&&0<E6ZK38T./([*W:5<P7GO6PA_(<YMJZY\XW&P<56
MHR#163HG@5?#-PV^R?6(&^S://#-8> VU?YPNYLC Y!WM7A/DZ6DX9G3M%[.
M],WG=,12&ZAA.%$D3XC,"<WS'&/B>\&,D^ >&"\=L6,<<UP92)NJ^3NP-1P0
M8;(/I42>MKVNF#!E:[>^)'"<&(L:Q\[PT189!;$#+"AZV<L0O5Q5ZYVX6J]H
M1+/"B$L'7.9F# <$'.&LI0Y[ZYTJ<N%,1G%_E(#I[_L4VR2.,*UMEQ.U7<[T
MS>=TQ/*;IU1Y* .I<BG_8Z/U, ;#SE6O@1(:<QUT2RKH;L8S56-9_'3X^Y0S
M#-1>9ZB.1MU*6 \UN"4"=_)PR PY 0<#=U_MM=IJJ[T];T &<,MO&HMBE)H?
MI>3'G>=$I_"C..TUMJS530WO(\![YR&^!X3W4!WT .+-/6-^,BJ<ZH3>HRJF
M.AIS3J[ZF;[YG(Y8?A.YFM$86:]BTB__VKLEGN5Q*9<[7?_Z<'4?%@H'=WS-
M1GO/:Y?Z>D^:Z[WV;LE@A4 *D32HC<:SCE+(RC ;A/!N&1CB@&HQ?,ZH2@?5
M;ED6!8$*L;3>*4M:0;S:VS:I#7+=%CGMF\FPWKDM<B=GIX7S:XLLFA\G]%YI
MMR;Z;/)NPW</T\<7.YS/;.S_CBU\%H[]8F!#6XVZE%M3PS3"1CQ\:C1E!-%
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
M.W,0RF\PXS0GWQ,3+EU[YKUJ#I,$RZ?,19E2ZX*!%W1"#^)P=FYEV6FKS=9
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
M;YBU&ZUUF,E<1+Z< <6SP41B1(53H)9-WJ7D%,Q9"VX4 )T+WYG.->H($%Y
ML\TYB"F1H^6T#/@Y,(TOYP:;A6,U[F8S )KC<JN0?X+(+JB^@\E\_;PP[3?&
M*UKNQ8: R:U];.A.2VUO2"1>,U%$I +WJH2;5<1N=] 9W90;L5+(3)+@%Q19
MGS7#(7O\;E9@8OXP=R>?[JH#%B:=%XVL71.K0DJ- 9;/_!7%"M-F8]3?H+.1
M=U&14DD2F33$!T+-.(PK'#X:0]@T >-3C"UR^[#\"&?&;@%DEN2U(@$9PV+L
MDSL[BAVU-UIO!9!DSJ25X753[HW*%7UXUI/M )UD R@F2C,=.\\LAQHSMIX!
M3\/W#-X[A$H8,6YV\3"=VU@+]\R\N4UAVQF\/*K7"X$7>BF3-_K]Y=U=%,N-
MS56)5OQ>>;$Q61Z',&V*CZ?<$I5_-,7)#GXTOX7;_0:J.%U2@**#O[I3#8V(
MBS98HYUU=/_X@;P:?&Y8:Z"\&<S4-]$R)2&I>K2\$EO.2<EU;05T= SW#_!E
M&'87XB.!J>QG(QV3+^^K0\=OL.?/L.5@"')>1#;ZZZW;@93DWBBF,2,;J!=O
M:_6$1@CW%&,B)&P>D%A;Y8/IZYAO00 @5'+8^[#9&+2WF!K];O+56L(Q'=%>
MXN0)R8$;Y;OGVZ7=&M;4]'5^BZQ-IPZJ]ZBKTUK!36MT:M>GD9NSGXLS2C-U
M6LU8YGFS=G'V<W%&:39^T:25U\8?-)HRV?@IP=]2@%^&C=]LJZV$<2&YC/Q1
MFN-=)O/71GX6(W_U$O)@1R./D=]+M*AV,/)':<9IU6AY9"-_E!8.K0H=]S3R
MFXV$&Y##&OD;#B?-M"]+GY7F%/0;W74R5]]^#UV2U=2<_0SX5LYRDFH:\*UF
MKLQ*[#$EEN'N8JX/-@X5E%2Z%6NNMQJCS@9SO0 +O)4SSU<R"[PU5#L))DJ2
M =XKR=R,,%Z(T=E),93*E262&9WK/NI.1F=GE+.60UI:'MGH;.9,3Y6.CGM'
MEMN)EQW+1F>JBS\X%DM+X^(?U SOMP^MU$HSPUN-A(EL%3?#'Y<TI"CH\)_A
M^_ >=^F:P8TWWDJ;"Q&V\7I?=-)42O_TU3ARCB9-TSG3?7/9]G&_ 3$^VPXR
M'U55I \PVES]$BL9,=G,*ZT:IM1Y?H<>;SK7BQYO&I3K $9,V(CUW^_Z\1U\
MOKM]O'BX^;]K>#IN0:%??!Y_O?GRS_=K)Z5\'7_[Y>;VO;+*5TI2@5"07+C&
M(\MYA4>CN9R'_$.3_G<JA]V4X; S%ZB=/+J*057[T*@"K3?A;?Y3<I(/L8@P
M-7H#H!.'+9^Y1*LHYGXG*0$>_AA6JSVQ8T(O".0I%,FK$7@>"*RE7HVY6NK)
M+O72C<L/$VWZQY-C^Y9^ 2=J.^]_F$X9F\V6FC&LH,*S"UCE<I777;Q?>#1"
M$B=@T2V=7*/LC_#FY"'WQ8VR;_7S]HNEB(RHWTP(\<5.]%-PGA3HVZ^+<:N3
MW*Y&@B.2Y\W):$A>SU\."+&\?=VV0"Q0!$(/+)=F)\#ODV9B77,!5;2#]>8(
M$L+@'-Y\ +F8I7+IZ')QD-R=5H(3DN?-LHK%U%3/W1!V/+&8D(=P;!CD,GUG
M]+\#F[YT%XI=->1DFNJ)<O'H="LD9W9!.KOMG7HA(A>_B!XH7 O\XMAN"6F'
M$ISP.;ZY?/71SSEQ8@_U(615.7F:$AS6.;[Y &Y?EHXT%1:X*<V/)3C;<WSS
M >SU+/T7Y!*XG:1>-<<^+/G#TL%9U/'GHKCJ(MX+^DQI6?U3W*#K<U9V[2$;
M0^9<EH[_88ZM:^X\FV"\D$XJGNF;BX+F3QLBN5D:R63'YKY&Z&?;F3'#\W&B
MLZ4':';W'_6IN$"0_WYWD3;XJI  Z<\28*;Z:-T@2(N]=MA!D.[4&BEAKLZQ
MCTO^$/#U]X7A2!<"WI(M) &_%9#/%-JEF=)USDG$G2,*-HCCG"5R>XECD@;E
M6K4UO,\0WIMLX\S#W \5HUTUCX$IZ D%&,@?>XDS:7+Q2$5MY;/"^P9QGGQG
M5HYUG2#.=[DSZR?U'951KLL?UUU*-\;.&)(F&J_P0@?6K]O^Q&32LNO:$@M*
MPDN^<BD@.?G:THM(2^YV=E(IG=KL2@-VD=EZAP%I_RCIS=<\FZ^P)+[^]HO"
M&L5G*9ZW)=8-"LOS*$E(9ZP=J>%]PD(Z97)LR<G610OI# 4H,J X<:CQZK3K
MOZV,)J[G7Z\SP\[SKUOU_.LM\Z_%E.N$^==LV.[JK;+G7]\E=>ZR]*5IGY,W
MT0&6@F>IC;VHHRG\D7<+<P_6WRMS G+1,<+?F(NRE\*#O.&>C;^*"=[H9ITZ
MA56A75B*"%CONI2L#8_96BE&>"5+5X;SZ< 0:Y>0$N9*[[5PX$,4ILP1NRH$
M1E6-G5Q=V*K0?"TFC&62$+M993N(Y(-W2_F&JE0&$I\V(QVI\U)]L"=WL-_8
MLV9@7?81%3#Z:!A7\#7SB*OX@GW"#4OY)_;$KI%^<DBO1=B)'FRR_7YF3DR.
MUG!'-W*SY67L&?5?39(O!I5+AQ"$__F(7IGN4L[JS:571[16TQ639EV1YW-G
ML7+2$V.A+J[']KB8;-?-FR1Z<\'H71MOT\K;@"8#D'<97+,.Y)7+S- 3B;D#
M.-&FO6&B3:?1;J[?\!W]3,_QS>5+X=4LVL-+X5@XL9;"Y]M"K[4Z%/RH2-R4
M$U) B66&+'"I,[ZWEUAF@U6I[L/PS*(1QPI_K,B$(ER#4491\,!>F"6_<]!I
MJ>U>!I8_7:A4%)L)AG]R@NQFP__QU:Z"X=]N-%M;#?_3A4Q%,9ID2G6.+S^+
M-.MK^;F/D54BSOH9<;99 %;#9!_*@K^":S./;ZEC7T,)F.N$7UB>I9Y9 LP=
M5H4P?K:V B<,E8IB,\%2[^QBJ6^!J4RV>KNVU:N&TB0;JGE\"5IH"+Z6H'+:
MZ@.I<%:RM9ZE5;:$UKK\<74^]D$"]CKA%Y9GK6>-"WVV?4=^8SWKE)S314I%
MH;EFK+>;.?NN9$&I-+9Z-Z:.:EN]*B!=EY_MYO'E9Y&F>BT_I335 5$RP:Q4
M2SW;%#$)+77YX^KM1JN.JU=4T[16)[FGBP#CI0)A]3HF5$UD)D35=S+4-X-4
M&D.]TVANSWP_7<Q4%*1)P<[6T<5GD89Z+3YEM--;JTVSCHNR4NUT;DS* < 3
MBZAW:>"2!-QUPB\LST[/*@(>C._RF^FMC,/F3A<H%45F@IV><XAG!I!*8Z9W
M&ZW:3*\<1I,,J*R!SM*D9Z'A]%IZRFFF9ZXF.P#*2K72NYEF=TIHI<L?31\T
MFF<:3=_2QOS8:FC+\HJP\;,6II=6Y7*$6M3$(60UUD\*ZPE>0\X1J9F*"*7Q
M&SJ-06^;WU#C_O1QG]0&)ZN->(A*QEK&'Q'K)8Y#*AZW[6;6ZI'#5'J7ZMUP
M$UQ>3.][+W$P3C@I=C[A%RX+E=/8T^F_L#ZU*KZP/K4JOO#D3FWO_MZU#5&%
M%VZ8DRJ7JQU;61'>RL9N(3)'3?<:#E_#^03@G! L;68-ELH=%FTWAJ.\8=$:
MUZ>"ZZ1@Z,;B$YD#G[68W@W.AYD!7T0NQ\:A(56-;+8;_?R1S0-B-M,,^ )?
MNM^CXO.=WH6SG'"@^8-G3_]0?M<0 #B]G":7)TZ7DFD/"0/';RSE'YKE:\X;
M3@UO*J],,5S79[JB*:]\>XIG*PO?F<X!VTHJ0_7:R5W2FC$CAGX.+A,NYP:;
MW2V "3RP,NYF,\"_X_*+!?X)(K*@\?*% _[Y?4#]&UKOKPO;NA>K)&ZXFP&K
M/ML6/64?3=#K)]Z!*2Y] (>O3^E%<$P("J"6[3L*;4\![I[ZGO'"%+%!1?,4
MS0KFN3,QR1V>\9=TRJ94<1=&S;V%W&?-<'[33)^-X2B>ER1>8=7=[803@.WR
M4T!\NK[ *I+W>6':M#Y%>W(8+;ZA/,Y9B.E7S55><,DZGL@&XK>3RQ3+@W5(
MS+M9_),[(!@(")3K=]5VU(T[(AY8_0HP"_"Y!V8]0K"GH!GO-I3?F0*@-4'2
MZ(H'1/N$UXT7#].Y;0+@GVV=F4CH&:R4$Y$^%9#685,&B->5R=M&3G@UO#E]
M<6:;IOV*8^*U"#_OE1?;U' 5WIN:+G:ZJZ5399Y/28RR8%.P!WX+M_M-\U@Z
M6X"0@[^Z8/W BB[:<,*==97_XP<0,?RYBFZ\&"#Q=>7-8*:^@9:]=K(?6CU:
M7HDMYZ3DNH@!.CJ&^X<R R&B&#C4D;F <'CL)CJV!A6GXS?8\V?8\HW8<5Y$
M-OK=)%*BR-$4$R?Y@KA)"X?TVZ,CD6^70,HF&&*\I+4A7K*60Q8(8-143R1,
M=:!\7- "W9@VG0NUMVI[^&#:.>8;BE)O1=EMLB^2*WS*4W&_X.]C>NZ>.43<
M LR$YCKP&@58T0F6<_4L]$Y.\2Z'_=T#\V6]8_X&ZSNT_T!D[V!M=S)8VY6V
MI1-[FD:V](YV<B=YCN6NX"K8"NZHO=&Z9$BP@=.54DZ=7C654YS-C[\/&; 0
M([_7SJFAJF?"]XHRX9/S[F6CU)$-])*861KSN[>N,-?,[]Y1C,U^.Z>_?BQ3
MLMD8M-=-22)62)S8MEW:-S*L!0<,2!1"SW= _OT)UAN<)'ZEW6R-Z" ,:VKZ
M.O^H-ITZJ&'%UUU4M5<@47&W2J>ETK>J;\9^9A.G"#NVFVIJM&,0:E^T1Q6+
M- _50;Y \YZF;C<YY[\PXE7 &-X26-[1&.XFSW8L#Z%%!XV':F^0*6:<9B_W
M.JEROG@2'-6B[E32HNZD6M0E'X\\-G>O*)N[DVIS5XR61[;*.ZE6>47H>)"P
M>><X0>).:E"^))56HF6?$/^JOG4]!HO/W-.T[J:(LM2R_>VG3,MZ?(6EOO%_
M2FAW)[=;.ER"1R_#-(C2*%T!([W;2#J> V1_=+LY1S^6RP\%6_G=D=I/&)J0
M8.6WFA5,#>EUDU76X0]/4@-XL'[VNQG W63#[<0(?63KN)NS#V>UB+RGZ=QL
M]#.$O%.#%=*(^:-&,M9[H1[GBB E3^%(2K<T/R31JJG]$.Z')$</#P&!.XL=
MSQ79(]4\W/U>GLC&JICR:5T[(YN<D9P3<TIGBH+]D797'7834I,.[8^L<U(Q
M_DC_>%;&H1A-&I>DGWQ'?'JT/K)7TCN>CWT8.A_7,>D=S[/>3-ZS]4V2;_:/
MIX-K]^08[LGQV'*M;6Q%W)//AJ594T,S]W%/^AD:J)=)Z]H]V>2>'"] F<P4
M)^J>K'-2,>[)X'CNY:$831KW9' \,^*PM#ZR>S(X7BCY,'0^KGO2/UZ8=C-Y
MS]0]Z;8EDBM'<T_PMT@$P_+I[ OMQD,]BX+'36P'3HG:)@'YWC?I@?3HM;E0
MKX;NS>%/S1_AA)AI+C0=N^ZAG0$/Y0V1$MNUOHMWR)HO)G,G6L_F1J_O-K3L
M6IT@H#Q>_^_CQ<WMU?7M(Y]=%>NF-64H73Z\^_CYHMW.]-:(Y']=:$_L8N(P
M[8\+;0:/>:]HYJOVYO[U8Y9FM>)IV%])4^8.HN ' %WKW<='.@A@&VQ0R*@+
MD_91=&)*;355(!!60$9,B+_X%QNVN[H(/\)?F3[V@K],IZ-F;^^V6H=R<H\7
MVGN$DS[B+5PG=QT.$LKU30^IF^;7;K!2-G:S/01UJ^_8[NJT'B_A-0WD1=?R
M=-514@.%P[BM^/L8;Q3CJ>8=25Q)WI'&5QT>[]KRT-0^LK<Z/-ZEY:$H?5Q_
M=2"525-[K.BQ2B5=ZBNU7;P-_\D'Z;:?N]%?'>D0%9@-8P5FP\KUCQTFE5CL
MZ4ILN*!>;>86U?0#Z9J2%DX6ZRD,DX:7[^LI])NIU:DEX;-@/Z"O=A(ZFB2X
M 9UJ> ']5FH;D.0#J5Q]3D(K]YTL^'XKM1V%5)0ZKO7=;Z4V,)>"2GM;SJU$
MAS!C3]96:AOLO8@C3;..PV:1-7-24]YB^D$2K&J35AQS:@^<O$QS2(.U-UIO
MC%*FP9H\,'W)8*W-T75ME=K,=R=L%5U:KK:[HU,R-E?'HY<IL4_='&WF--RE
MI>61#=;5N3"5H^-Q3=IF3GO_]#K4'=;H;:6VG-M)8Y5ITI[B$(&[J6<##??.
M"BG\[E4L3.H649U!+W$<Y.%Z1&T>I5DVK2M@9O<;27[+00H?"D\RWHLEBBY[
M4/OMEMI*FAEQ*HVB1H4G 4G&9WN;_NL7![OEDJQ.73U12A\YCV14>!:X5%3>
M/X=DL$<.R4@::5_GCV#^B#3'4:Y7 N;->D"MXE[)76PF1(O&7("E@;X)660Z
M66K/J%=^0D#\UP_#=KOY0=!>&>-?$,KT^]:'GY=0DRU G^[,M"/PP,^MUC&<
MCE9[J]/Q>/?U9HF+5&6A!>SVEV:CV5JB'5^70@L+R*8&GB"86O0X(-V5TU#^
M1S/AJ)2'A@+KL4#?X!_Q2ZW!!S?=LR$AJAM@P'FVH\#+EKXVL4'LX,*#3[@J
M?F8%!:UNTHE'"\;#=6Q4L7S%8,[;)+WP+PX+#QZ?$<!E!D=+^Z+=D <&D'VR
M/4-#$X9<L$:JU._T4BO=LB EQ.H5<Z>.06LEIQP>:3&.RM"470,X)WUL8_H2
MU%=V%J?<M_ K(9, &I%>VA.PV!/*YZGFSBE>#N1T>"D+>J*=5A>[(JOX6@ ;
MLZ@ADJ:T>C_"X;E3VX=7BQDX%O,B9Y:>MS0B1VP(.'MN@/1'@0[:>.J;1'G?
M#23^U+3IY] =QE_&(8M0P=_=:JZN_9D G':+UMYK=/JJ GZ&RT<GK/G92X-[
MQ*P>[3G8TE_:C6ZSH=SQW[MPFJ3)U.33(<CC7R)B\RT*DC(PB+4%XA4=260/
M'<#*^0TYQ0W,.OC5L_9OVP'[/&#M#7S36%._J'<W=2Y):S*]CMIQ (Y+.,O+
M.#1VGK_'T;0NRH!>SA.:MHFL$$!<"XF-[N:$@5R*ST_ZA5FP/I.H.]:?#<MP
M/5SO"XM&*B'NX9%<M:&EHL CX>LK<Y;:K2)TZA:]=\"HWP,#K#V+N!]7KD+<
M;T!*6JBI.0IO9.\=XP4 <@]>/9F8;K)I&FC*,?A"6-/GWOF>Z\$Y 9_O7-"B
M=CM===!.F$\3YVD-V1W7J"R"1:;!S 7?8"5^-W=L_VD.#P%& #0A&PO> RZ<
M <-93]S2#7:HH$DK) U5)NYP%;Y:<;<#X8E_EP)K=[-\ :!-LY(2DN^C")NZ
M1@+C^9GIJ%_--\5?X%9=#,$!'7CD"/@S"AV%E&)_^AJ/#2$#DU/!=1P>%;D4
M\.G@20T%0(ZEM+B8;/!>'1^62.6 O.,GEN9VE8+M05MM);BG$;*!+DB'"-,:
MKE"HUA62Q@A(BB<?'#NKS<?R$JI,++8;K74L@OU6:7_H<2F0*2K-_6?X/KR'
MVS)VA+%EB14"1"/'8$VM$0+P[N=] ?M8+81.,)G[H\RU-FOQC.F<Z;X9Q*_G
M-C@BCGO]IP^6T:WML8#Q[AS.=X_PBD\F^5I@7FL+A)[CLW?;BO5C%>XFFWFE
M%>\72FVJ;8_*^H'O/49[8N\5RWYUM,6'O0O,$U\8="#0D0#O4MH*1 T%.,E&
M/WYX88YG@+TO*#VQ/9 +2=T% "TF;,3Z[W?]^ X^W]T^7CS<_-\U/!VWH- O
M/H^_WGSYY_NUDU*^CK_]<G/[7EGE-B6IG\'?P4ZTK:>/:]SR][^)OQR7YO4A
MEWC(31D..7,?C1I5F5#5/C2J0.]-^&C?93@==!&!1MR(Z/OQU=7-[2]Q@G^H
M15DE0?<[B0GP<L:P6G  CHF]P,!7R,*O$7@>"*S%7@VZ6NQ)+_;2S<L/$VWZ
MQY-C^Y9^ 2=J.^]_F$X9F\V6NL:MH,*S"UAEG,;O/L:"9JHR8? 9"V,;(%@6
MS#%L/9&;N#O^XQ'X^/!O%@P]FRTQ=':^=?#(<6UI<;YV:@56+&TB$+4%I_?<
M\:23& BX8MGCUKRM-KLCM=59+PV0X##E>7,R;I+7\Y<#@K$UE B,@<(1^J;8
MA.5V(V$"O81(.8<W'P#7S21<MT95%;*M7D]M]FL 5U+(MA.;!!T)C*4*V4ZC
MM9Z[?FRDY++*9_2_ UOEE,:*M^AR\M5)*8:<31_+Y<M?>&*K=4_.UR^.[;K[
M9+"J_69?'0[7K^HE.-IS?/,!X)RSQ>:><'9SX;E45=-J)+3<E>#,S_'-!\!Y
M:O.%5E3-7E&QW1OVU&YW/0M-@H,]QS<?P!]([;U:"I@E$MK=QD@^G,L?M0\.
MH?80#L&=.4L<2^;.X.QW8-#_,,?6-7>>C3<OI&/,,WUS41"_D& OY_CFHL[O
MIPWF<&I'TSP6!%4,[&L+?[:=&3,\'V3(V-+7I-4>=O&@KPX2^J 4$O[]60*<
MG#1"VZG]VX]BX^ZA17>Z:QSD,'-WP*W\(>WK[PO#D<Y@W9*8)0$3%I ZED5_
MY&PK5VXX956% '+H"44HD7:_G5@*G2EKK.*:I4:[T$6'O?/9KHO6 %ZR-LJ0
M.%#C_W3QWSILO/&(TKZ/C2^&V^^%:K2?+MK;J6,@CN1Y'%;:]Y/F'Y2-?_E#
MZ$N)[]CD3-*4]Q4>Z<#Z==N?F$Q:-EY;8D%A^&Y*.XQ*9G!VU,ZPI383NNAL
M8\U.G#7/(3B5G1&*S/<\$*C3NH*=7"9HN]'>G@E:8[T6^LO\T9:H'.6 M5$U
M(YRRT)>IX._X-58R8)W\E;^)5E)_H[Y5'U<[?-)_X[D9EJ_QG12XC,V]LO"!
M9?3&"NO5%Y.Y$ZTG0VN<%):9X)R)F">O/%[_[^/%S>W5]>TCE7@GU;1__'S1
M[N1LR//7!:#U8N(P[8\+;0:/>:]HYJOVYO[UX\JQ;GH:>_[X=TV9.PC<'SQ[
MVGKW\9$. KS!2V11:F^@P9/PD^E0*;:?6QQD)#?P%_]BT^FHV2O4#4YH@A<V
MU(RWNL/F=?'.DI,WT<&0!$YJS[M7YM ?>5,]]T"M[P8IPP(WM+Y;:BL>$XY1
M @-N^],;2<5ON&=)>]UMC:PEJZ]C]@6+D3OLYBI#:S )NH<LM?J0IZN%!)39
M#>9R-<2+21:I@+^;XL\A8@[>N*8:S6).DZV.U!JK/N23/N2@ U7@O1ZQ$]4W
M]JP9U#0)'09T<GW-/.)ZON $+<-2_HF-QVLV.&DVJ&7=&1SR:MN]NNM>R?5[
M>X:65[/GB\'+TL$$,>9FH]^5*V!_5F\NO_9P=8K#IOOA.XN5<UL0<U3WSWMH
MJ>W>]GRDLX+1R0!X?6Y?]E!L'BSO,FQUZ\U7:,?'S'B<PMK>-(6U,5J;PRK!
ML9[CFTN7Q9UN_YBR^-:V.(3Y()X;"VPOG_)-"TU+J\5S9;L*CI);MQ[-5B@U
MLX!;OI+!M. JS&S(*M.[&#;/[ +N6/&*%;%0@+9J)F?.)4J#QU=;?L^AU1NJ
MK7:&CK>G"Y:*HC/!+>CLYA9L!JI$;L&@O]4M.%W45!2F229_V@C6@PC1PYC\
MM5S=R_PJ48.G#4H^D@8OV9X?9G [)33CMQ<O'M^,QZ9)$O#7";^P+"'0[B2.
M"D@1 G.'53/LU!UTU%$O0YORTT5012&;8-LG-Y?8;MMO0:\TUCW(TVYMW5<-
MJ$D&UI%E:PE!DEJ0RFK,Y^A><!BLE6S.9VG4*:$Y+W]4OD4CE23@L!-^87GF
M?(X[Y,^V[U32FN]GNT,^7?A4%*\)MOR.TX2V0%<:4[[=Z&S/WSE=V%04ITGF
M58[<AQ+D:@F6?"U$Y;3C<]P('01H)<]4RS*^4T(S7OZH?*O1KI-K*JINVIT\
M4L!XJ690OC7HJ<T,G=)/&$ 51>RZ(9\R+G&[(;\9O!(9\M&0V]J0KPI.$^RK
MU7',!Y:L9>0MUF)43E.^U90,:B6;\FUI,'AR$?E.G6!34873[N2('#T8WZMI
MR=>QI$K"-<&.WW%.UV;D2F/&-QO#=FW&5PVF2;95CG2'XJ5J&59\+4*EM.%S
MS$\X!,Y*-N$[U4RJJ4(TOC^4@K].^(7EF? YFN0\L!=F5=2([W:ZZB##Q* 3
MQE!%09M@R"</I=MNR&_!KS2F?*LQZ-6F?-6 FF1BY;CK+$.ZEF+,UZ)45H,^
M1X+L8=!6LDG?EZ98X\2B\NU&JS;I*ZITVMT<=W/7^+1JFO2#MMKJ#V01 &?Q
MPK(,^G9K-X-^&WJE,>B[M4%?0: FF%CM(\O64G)L:D$JISF?(S1W&*R5/.^R
M54US7OX(?;O1J<M>*ZIRVMT<69VW1D5[)_?:';79KV-*U4-L@C7?W<V:WP)>
M:8SY9DQ1U<9\57":9,SG2( H0;*68,O78E126[Z=HZ/T0:!6LBG?J6;IJ_R1
M^6ZC69>^5E3AM+MY&EE5--6F/50'=;9G!?&Z;LAW=NTT7XTLFV%,2]5V?%5@
MFF!<=?*,ZZA"CDTM0^6TXCMYNLI7/;V&6YIR0/#$XO']QJ@G!7^=\ O+,^)S
M9-E=FY5-F>_4K1<JBMD$0W['5I1;X2N1+5\GV%0/J4DF5HZ6 J5(US+F=M>B
M5%)[/D=YQH' 5JI)S^U..5"X;US^T]VWJ^MO%Y_N'A_OOH)9OOBNN+9IZ#N.
M&-[VU'?E>0/#1C<QI'\_OKJZN?TEOI@C3&X^] M33^#8RBTGX/+Y%+EF)3*S
MJETQU>YP>XY?C?O3Q/VZ7]+=L;/F5A:0QB]I-?I;[QAJO)\FWI-FXN8:2UJ"
MG"^G(+@6ZGE!7J0C5"I@<]2[' BPI7I(W!:7%\O[7H0<C -.BHV/+3<ZP-*Z
M[0/X9=..L945X ;U<^1'R:\8.VIGV%*;&3IEK J4SCDJQY,$^9K/TQX-=O-Y
MJN#M=!K]?EYOI\;ZJ6 ]R7S,,26XDA&M6L;OBOL2/:!BC9)A#A>HVLY/N]'>
M7K9Q1!R3\_,W;V+K;_AOI,?'-753X$OW>Y02_K]A<<09E@XG^[[;P_<\SIG#
ME%?\AV7#>;PP%\Y5>15(4NQ(2BD:_.=,N6)3@I?2::D*(K#!20,$0'P:EJ_Q
M$RN0!,E63+^7N<1SE1>  YX-C^3PV-(O:=U/S)H:S+TRW*EIN[[#'N&YGTQ[
M^L<[A;E3;0'?!^'-]H94_$C@8: 1;.OIX^W=X[72:C64R[NO7V\>OU[?/CXH
MX]LK^._;1X#Z]>WES?7#W_\F/EX -$I"6;2EO[/GCU_8DV8J2Q3^^]_@]T5N
M) '7A^*?WYGRK+TI$S:UGYFB*0O-\=X4SU9,PS.>-"[$+<6;(W^!6#0!L+[C
M,N2DB>\:%G/=!E_L#?^8O0![%[X%'X"5:%PTJ_@GX%&-\ZE)1 4AZS''A>>_
MV.8+<JCOPN<T3WFU?5-7YMH++@D^!FP#G]=T$-?P:C:;L:FG^ M\B^\H,\/2
MX&!H;<#IN&95 5'LFQYQO+T *4\J0+$=9:JY<V5FVJ]N0X$E:WKPC1F0CJZ=
M<?OX;Q7D"E&'%@*_G!DF0]UI/+N*]@1VO>L1P0 3?-V&-7,0)HI8F0&\;9J,
MK'YEX>!"O+=&5:!_[]BZ#X3^8F@3 _#P5CCP#X?S<;+L5T UX _- *"!)EDY
M90 F6 5XA$01,Z!(9<[R\NZWFZN+UDBYAQVS9V-:X;,$G:^$^UF(_0"3HB29
M.@S-/Y)$3Z8] ;Z#/^,IX_GI!D@L%!XHH,1ANH0!ESDO8/P)/IXS<P%_QU0E
MCQ[EPG]H.GT2O'C+?39<5PBY<"4OAN.#3*'5@8&J66__]<.PW1I\<*-7D229
M,(:6,3S;F!FP5@V7 "K:Q=_@@H-5@@5#KP2K$^@&5+.X0(9EZ;";R9ORHCF&
M[2-.N6JBCX.$MCP'_@L$V-R8SOE; S%JOBD:"5!XLP%+"J0X?351:B[M26'?
MX0\&O Y7KKC^!.TK6G= ?508,:*C($RF-7P.>4_1?2YSX2W!<>(['=M_FH,!
M1YQ*#)JR"(?AP\5YB#>+9P8$FH$=;CM $5BDZ9,YB,\3EA+M%Y;YK/T;-83O
M@CL"JD:<7T2BF"9)6'- ;DY$)"_7B*[OHKL2*<4W_#?2'EC/QJ68\,,%',\S
M$NK?<#:HFT"=P&N,V<R8PN/P90!"W0#Q,[=?$QC@U3!-<;1Q6H4@C-0D[()\
M'"!?L$:'XE0ZB$98&M"[K2(L8UR$$+2?WY0G1]-]0I'#;-R6&M$+E.F_X6<.
MPCFZ9?@$PXG13>4\%#M*XWEADHW 90%(@3^81^8Z0D4S 2<@I "\3P:'#) 7
M-+_+&DIHN)?DN:29[9DG( 5F.WJW[X,((%KLXR>'\4VG&>F*<$; 2057%/_C
M7R.MT^NV2C7?VPTRU[^-+X7Q/O[EV_4UV?(5T!7+*@^\^JGO&2#Z(FI71>N]
MHQW\W04."9Y)>A U >>D]SYRJPERZ=W'_]%,T";*0T-Y *YCL#_XWD>Q5UFW
MF*#8[V /;.%Q$PU%$+?,P J'SX!AAA+5L_EJ-! B<*H7&#)7&,@0FP(^H G%
M68,\].;*E2.(H@JW ?%P![H 7\&-P*;P7U#)1=\&0?P".IK;?9J"D7^02!8:
M\B"4-(=D^%]2XUW-87+5=_.B.0J$!/W<;O/85XC6"*R_PP;XT3[0%E+"8K@:
M$(T@57X',\#=(0S[Z\/5NX^]9C,QO3Z1.O (>Y5$KO&$%QW*Q+9\LB V$"<Y
MH%T,02XQN'DW$\'$.^<;QOIBT>H22A#">%,C AQJ;R(36G6>B3:I#50B]S.N
M@#FY4-D!KPN$@77ITQ^!BO!;FP*89 'X#BA6@.(&VB8GP>Y'6U)@-V)5=S,>
M47VT[\5R.'WN9AB6LJT'C]39[E1.GG2FN/1WI,F4W@.B"%XD_': 9[O9ZBOW
M)I*16T!@2(-%&AB&^)M/MN;HW)Y- S,/0#!N3CG,>)Y0O",Z5T0[/@MM4#!#
MX.Q<UP:[BN*.*'/PC[X;')[F _'L"88._ 6>X2:AD3R2I3BA0>?X+=C4W>Q:
M[&$<;@&__RO^:1RN>U>)DE1\C_$<V."<GP&9O.)HHO,P7"[;%93M;J-L*X\B
MX,'C)K8#:I6"\" JWC?I@?3HM8J$5T/WYO"GYH]P:,PT%QA*LIZ0$/!0'EY/
MS#%Z%[^#F2\F<R=:S^;LI$VE&Q-3 V:(TM:4Q^O_?;RXN;T"XXU73<3N:Z:D
M4#^\^_CYHMW-]-:(Y']=@)JYF("K]\>%-H/'O <.>M7>W+]^S))A)9Z&MHFF
MP#$#6GX /@:[]I$. EUJ9 &RUK3 BDF]N"C6W(_? !!?Q@WO)).\V=*FW4)-
M\@2[2$16>3AB2<$@ V%4@$<1+J_O*)@@/% 20($C!HX3KMBQ337V"!)R$[:B
MHTS_&?;C@S?*;]&(15]MSH^!4RRL("%J*6X*'W-]<("#50$1Y0Z0Y;"QKTU0
MRIKRCQ.PL5?,WS0#V]I@5J]08Y-QK8"1@'8#13#F+-E85Y6O[A(F'39E^+3(
M)B(+/#*] 7<FTUQO@SKMKT[RV98DE*).^6;_<0 ;O#U(ML%5C+/]FP([=D /
MA[T8</P4ZPKM'"1.&(:;O(6!EN"V7.$7AQYC*Q911'Z0*@QTA(&R&-ZV?A!D
MP496JXV!\]!PM5"SX.>GL;>N&ERV \^W*(@DS"Y=^!!/:$5O\1V2&T<T+UI@
M&NU[D"7Z#J-.8C>BF.LP%E=12!A5"&Q+!*M#PY+QK9%)RQDUG:?L9%Y'[P(H
M'AVY%BPBJXN1W%*_Q"/@&49WLP=XJ&/@A=LE4(GIG]ZNM>E\^;,EG%'H>7"*
M<S='(3\'!1&*2I%" H VN-_VEWZC-4!/CW^;>(#^#H!W*81,=TT80&=_^D ?
M#,P#G72NA05CA-Y&Z!+"WZ*3@_=P;TGXB.Z*-\2SMI:<(@QYHYL>+33]H$?)
M+<&6#OKQU7Z<V[X+#/( !&=,I(KA.U.E)?@71#W*N+EG#AW WIDW@T9S?3HQ
M<@$Y@V EX7:YB 'N,@WF!U(PP#__8Q"BWD"8Y)['.Q*&O+(@^>D23QFQ7:*L
MX=";!F^*BW]P(BS[%7[Y1+=H C0;=&S.1-P=X() N2&9=>7C]3K@Q;!U$7-
M[5-"K"%@)R(4@&7FFY1>X )/<N,P]%N?\;H-F!Q1Y"Y9TF0^+CNW#>5_4L1U
M0AB"2YOU6$1T6B@=4-F#TD!]C< %C<% Q((AL'2S1P:>IQD6O2N,7= )X]I!
M<_N4BQ$$IU!&H&K1?12W#873GAO[PFU?UCQK-AQM:,6YX"&0&5ZVO3+V!T5S
M%IJA*R_:E).5/ EN3J :Y%=J_'G3J>,'4137^,Z?(&Z4;)Z),346R.>&Q6F'
M[YDPB\T,3UD PC@M@,C Z,]+MX$3WU,L&Z_VP3X2CA"\$TN!%K!1S?3F*OQQ
M!K:NCDF$=/TO[DP]PQ%!8WS%BC&U%@/D5X+/6T3O(+F(HQ@=>^]/3&/ZJX>;
M@,.]%YDIR(,>V+#(D0M\W&\,J&_N;L^VDJ.EJ!0I"L2]U1?^%J2W_8HRB=N+
M!CP*;RL%VC8;.TCIM&*!YC!Y,%K!835,Z[^;A5]Y]S$6Q%J-7P6XYKE7/$:H
M48JMB9?;'C<#D+O!H49^1I/:ML1U!U($P.M;)G(W,\@"YYE;,?G!A&E.IF,+
MK]FUM]![!^T/#W]UT!>P$/C"&,!;:8.B+P35(+R CQ-N82C)JIWXMA1366+8
ME9C*7;:8RHKLRQ13L2TNLC5EKIFS8X57RCR$Y1O9B)W$Y1S(34K+.*6,2@!6
MF&8&-OB NUQ+B4G"69ZQ,(7DF3[O!GDHY)1ON2L8)&8AM 9H;'&AQG\.#"]Z
MYMV,"ZZ4%'N1-?_9=KZ&J9N?V<X7 -VT:(9'=@'I?>0A#"C WC3E3Q^$&'-
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
M%' D"RR4+WOMR?EV*CO^1SYY[$W,C_\/4$L#!!0    ( #2+?51)6)%:[A0
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
M+@%F.HOV1JXW8W\<+KZ%!D0X78B47HRT,,LM"&/.'OG(Y+ADDM5'9O$;OU]
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
MG=W7?J^QK1;\3K[KHWQ>VAL=96YJ08A'U+5Z\N>L?.G W4\FLW/H-6,359D
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
M6%CMNK]B\;\G4Y3$Z?\%4$L#!!0    ( #2+?52NBA!+$R(  , B   0
M=&]M>E\Q,&MI;6<S+FIP9YUW9U"3W?=M$"E2I7<B$D&I(D6I$9#^HU<)$ 4I
MH4I'2J(@O;V @'01D$ZD(R6A%Y'>0^]-2JBA)9?W?]N7^^'>NY^9\SPS>\^9
MO9ZSYNRU"-.$)<!]354-50 1$1'@S>T#(,P"E $D=V^#^-^5E(2$E)R:G)R,
MC/P^)=4]:H;[C ST]^GI&5FXV!B9.9GIZ=EYV3FY@3P\/(QL('[0 SZN!SP/
M_MV$B(24E)R,G):<G/8!$SW3@__G(+0"Z,@!E8!L8J*'@#MT1,1T1(1. !
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
M<GSN28-;F$)HR/#2NTO3]?/NW>BFG'ANP<9QH>X,6:O R8,''A\??M2PD@8
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
M$O"? IT"T]$S0!A/,S'3'"K9@5,@,/@4;?\T -JL/VT>H..@YQ22NL; 9?
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
M;]V/IPRLJA.4_V2&!F%M0N0234_S7;*S4P#8L@<S AQ7Z=2WU-M7T\P-DZB
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
MMC)<R(WXJ.YE%/F@@E>!"KBH^#>5XKV0+W&LN^*JYE<KQIJ^0AOVEM_G(X)
M#T7^D*&;XP!#\O/ CF-<-^VB;@B>N;A!NEHB9%I'9[\8J680 OFT;#+3_]CV
M;4Y.SL!<JG*A;2<5",3V[9964 '"C6,%MX9<RZJCH=[TDY1T6J,H3UCXTVC=
M,*H(K>JF5>0H?4BS[^^HXI5],]=4+T^&Y =/UG(GH1^LF>OH2&*:_@W=7@;7
M/OO@=*OZB#92U_ZJ\:+W[52Z_;V%FW AV\JNHY8C#A]^77=[I&3>_Z@ JTKO
MIQ0/E=&K\T.$3VH_P2D"6^+"R!$\2D%5QY,*@."[L@L?[ N73/DT<YC&1^Z;
M5]9O*73&\#[[@M%WOC#4%,!5$731NM?45@>NKDUL6N[?L=0_ ^^[7UN0&3M,
M:"',ZQAZ>-=L5KU5ALJWX,ZLJ I$N)8\M4NPJ[C\ZG*B_H,D!'S\GOF$YU1Z
M!L9^V-7%3ZIPM'W]\(ZWCOB[H\ ]RJX1'C3VT;W.VV\H;_6LP!\_#2?\-\'>
MQ[O:^NMWZH)MF?PUM>#/!@<'VWM%E41]B!G!USM@VG!]7T !WIE8I<*\_) (
M,[BC;: ! _X7!J*._ =02P,$%     @ -(M]5,]''8*@&   2!D  !    !T
M;VUZ7S$P:VEM9S4N:G!GG9=U5-3/N\<_Y +2TK4TR )*([6@4BJ="HA*+(@+
MTD@MC? E9!64D*5[0:2EOHBT=)=TLP)++;5[^?YN_7/_N/>^YYPY$\^9F==Y
MGN?,#&&*L C0/]32U0*(B(B Y]<%(,P"]P$RTFN1_%.3DY&14]!04(! %/0W
MJ"EI;M(SW62D9V1D8N5F9V+A8F%DY!#@X.(!\_'Q,;$+B@CR"G/S\O'^LP@1
M&3DY!8B"CH*"CI>9D9GW_RS"WP #!5 $))(0\0/$#$0D#$2$GP 8 (C(B/XE
MX#]$1$Q"2D8.HJ"DNG%M4$,/$!.1D!!?G_\:X'HVZ'H>(&4@8^23TB"_:?0"
MQ._.)!V:E$TA<*^RC=EX>%]0YJ5'&"45"RL;.X>0L(CH+3%9.7D%Q;M*]Q]H
M:FGKZ#XT,34SM[!\\M3.WL$1YN3\RM/+V\?7[ZU_>$1D5/2[F%CDAX_)*9\^
MIZ;EY.;E%Q06%9=\JZJNJ:VK;_C^H_UG1V=7=T_OR.C8^,3DU/3,TO+*ZMKZ
MQN;6]@'V\.CXY!1W=OX/%Q% 0O2?^A^Y&*ZYB*_=0@KZAXN(V/<? P92,CXI
M<D8-(] +]YO\TJ$43/>2LBO;* 5DC/>97WH,4[$(RBX)'?R#]B^R_QU8V/^+
M[+_ _IMK!J F(;IV'@D#  4N)&-S$0B[_*W#5QS)<_(^[V^]%<E4?Q?B*[@/
M&?RCIAPH5.<8?PFW_XD8%/(%AU)I9-'IYS2A?K2RRT*Y M73-??[WIX+Y<?5
ML2I]++(SX?\&E#9RD;W4%1@IW495@T)DK[1WS=%!124M/9(2+\AE-SZD\-8M
MT@ !9,SK.P>-2ZF&B"6!S@!.YU9<6M]H,/12><P[57;:K7 T6=I\^T2*2_KY
M03A22UN UQ!4;J[PKF;G-HU?\([5&&G4S!3Q#[FYGRE4 -@8,B!. )QN1RND
M14QT;O^AL!,O]=IW3;#F*:U.:=NF)&Y(C 6SJ8B4^O'OW-^?7ZW[-/D0S44
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
M:MY-ZMI<O%57U\6]KRD2LZG^C#H%I<4>@YY(OSY/<Y8 G7%$H))G!V"0G6U
MWX'?PFNUG.-NY>%F)$#MOJS#6^'M0[-]0HWB$7,WA8/W.Z%/<1!-Y-U C9L/
MVD+N(]6B6G6#&;=GK!=N-"D4MA=;R2U/2VZR.$A+*JUYI@%GIR=3P+8:13?H
MU#<HN-*BU^)[( V]TTN*55J+V//&DRD"D+A'BFAX>[E4D2I@9F\S1TT%] [#
M?RDH+_#K+2&HMEG!SO5J>0BQ@;J:Y/("OQ>."8P5 B5(^ILANI@>DAV+2;R:
MR'D%-HNBI8O78WB>;2QC)?:]I=[0?+VJ5&RZ?M,%Z)W$GJM7JAS$LIV$L5C
M1U&53F#SE;,Y+M=&K[#/Z4,C6U*N ]O O;CC'9.@UUY*MHTF+<W1SOTESE7I
M\5!3I,B*R,NOBBKV],[9;AA)^^]6I0HI6YXB,U9D+2\]0^,\TPI=:,;BN9SM
MO$^JA-?YA57\O?"MD=[?>=*+M[_/L9P;I#)CM<P^1Q++@9 >BCL)J4<EL+N?
MW"IPL2.WQ68-1[/?R6.*98A0SZI7BG ?#!EF2J>L(X600DFSH : 8]<;#?XY
MP_S]U\SLG" O"W;%9I@V9.FCO4_W8 LDEN',0W;+6]:#"[GMD^F/I7%L\/UZ
M+&2%8+*67ZB<1K9S#G[6(2_$MZ=1,DX\:A1=5[S!.5B3^")$TS+VC*\NTE6\
M?(9=#;XG6V3?*549L_C&'[870)6ETHIYT.(L*3@M^EZ@%@O<O5&?@7H\^I?!
M$BBX4'69K^[Q60XU:7CQB5RHB_R7:O1)V@#=976835QK%!7JIX7N,E_K8^Y6
M?[K#<F>^%?03"6OOX\@RH_R.^(V9+/=N^VE![8LRI6#>Q0G3K7<QZ%F3DX"0
M7>;A4&US=C(#T&5P3E7%DI2VV#&%.ZHS%()FM_N1BQ>1(@#?%WI;-=4H<;?O
M#UV2%>P,SZ(PJOITTBX%;JD:4/<@UM#CO9E6997;2:7:B7_JL!7-USG9'& Y
MV210NN6??^0YLX7L8$[C;>]@-_:I6Q85/72;=<&K7=+AUS8.HUI>A-9&#@J0
MQ)XC3F9,3A))>&;=$!ERV#&)T2DJ8$=%?K;:EF71[HIC#K'ZRSLS5T'FRN+,
M;(]&FINN(](3534+(P#$=F6X& 4%L!G>E&C*S\YTU&M>WK)\SR$,EN[#H$#<
M%."]8W# @X85!WV<_=VCK"TJ^#UYIOFKE'76CHDD!&S'$^S9O"RX%: ,"1;<
M$9#$UAJ20[TC^_:A:'_6'R@&9__;<7]XQPO#B(JTDMI\W?%H0?,>TDSR1?^T
MPS9][(2FV#:[@:&_.=K&<NDI^'Z@R817J2U5'_= /MF?0H]?[Q\(QL^;EM,2
M>QEE%M[%V"JE%Y7]0;M*OE!@&=9/E+V/&[HCWOINN4(;3BUP:B0&&S*UH"AK
M?!AGZO%,4K5W?6*C[M( ]V41RABHBN\;KE&L@?3%\ =8"D045U%I"'U3>R8M
MM9>0O)2[OI[NYL#E-/".A"?#=%$!J?(WR6G'B^CVS@CKE[.-+?GZKFZIG[_O
M.AP=&TW^ D\TQ,#+ZT4Y795Y\,?C.Q'E&10$(#/\?%)%<$%2V/8C77+ 31M'
M\4AC+;$F1K_EK#&SR*;^!$I\#9K[>T9WWJU.<I"!?[%?]"YC;ARF4^>HG[00
M/0V*\AM_N0*]55&-<!!V*K]\BG9A<N8+C>A=K(X@)[VSJZ4]J3:.)0O;+"V9
MD7\WF4\-Z[?Z.]5B(Q(R9M= W%)_]7%W*=KZ0'/JN4-]&",.$_5<[)$T%)Z-
MQ?$U_SDC *UF6%/DXV^1.GAC8*&1N*7NJC;D0B0L$2&]&9PTV841=!&[RJX5
MY;*'R:G[M+#.?&>-34[^N>/R6I F#+JR)A5&)_=4XL?;@3L*M,VX8A4!_O[K
M1S/SKV\0NJJ9<F4"T/4S</RYN]">*N>Y(>GR.K\E!.;<5LK0SXE@&VPH<S'V
M%$:T7I%9<CN1P/7TD_]B&F3GU <5OAJMK7^BG>O+1#3NC-4XN2,8-9QJ20#0
MU4ACQ.)#]\=C$_,8SK[87W=?_#)'=K8?V,6.C(K/P)5N23A.H?%5KCDO.9LG
MW4"%:*CQ-^2-6[__F'N!(N$Z/8<^*S#A(FH=-R.!!($"R]KATQD6Q]>T!$!!
MSOADWUHKZ\G3V>2[ORA,417"7UC/QS&3N-J3XY(J.F0>-=Q%XKE,?,OS\].R
M6T*6O<0-W8J7D(#K4[WW3SQW@H@IKB3Y]&9'/]<$M)"N$8J;6BZ/]/8'6BN<
M9^)FGF6*)+#I>D)>DX+_;.SQB*7P)UC^ZON<'+6O7/[V"K*I(>.LQER3XC*.
MP@@6ON]XX,(RA]*K!R<3N:#DG Q[F'>MAHIYCS$)#165!,#!(KY"Y1Z+"@.I
M5;JJ_DD%4MR^#DD O,L?J-F]:[M[YMDE=URWFX/]8O+SW9S6UXXJ_/GK(7)M
M3#5B.)"I^70>/*)T1K46V ?/]G"WM<'/O@Y$D5; )V%'L2VZ6KMO_)B(FA<C
MG2Y5E]^W@^MK"<!(1-[@8 #^%-]GWG1'?C-3E 3O9T4 MNZ9/8X_1=A>I82(
MS68Z;.!:LTI=3#'G/7@"<,3L;,!$)!Q@,IYJ*9W!8$3;D+_0#WC[S%Q^^YG5
MX=:@;I+NU[.RP#6>5*87==51U]^I6?86K*]8KBIH']3[QN4>Y]04_/VNVTB(
MW,B6';RWZ2+DU5TAZD9U.?+C3FW^^)5\P'""_/6GN@'(+9D$B,D3Q<IGB+4L
M?$TJ)UFB+!%,?]2UYHOF:XD7APZ!7QK#5H/T'''?_^Q@: HI85:/',F>IX9_
M=,W(\!QM]CZG'MU,"_K=N/;3MW,HVYD<U\.E]KN^TV6PYE;:.F6YH'*F=H\(
MFHS#W^;B%>N!_L17]26?RE!Y2KK3=UNH_""WBUNSW6EU,84N3W[JD?(^7(2_
M_^/6..!W6I'8)).H2+)W6;J[,*W/L(JK?>Z:P/-;1<?@TW!BSQ6"ZOT=*#Q'
MK7^QPN;4ME?LC(<A!31&]Z.EYJIVBJ*),<_CZ>X&_LJB>[B.),/=5#? H+$^
MZD^ DZ-#;%"I6$("";$,+L1%&ZJZ,'D=$656U/)%.ILTKWT;"4# ]4 6U3ZB
MS^"4 &250D9*9@G OW>*V[) *I%OBA2D-D4ON$:H>P2"F!9-)S:S4JT^# 68
M_-XH>A;>#!AA'>KJ#;_=Y1Y/T!+S<S5^/NM!E?&< "C9K#7TK.>DW.;?EG\6
M'0ND^]"!P/JW-#;V&+I,/L1&9#I[8NLNJHD0%AY>4Y897U;.S.\UWB'25HUT
M=A$RT8VL0GUVQYGK51^4N;W1^!DH&5"Y=>:=1>E6[FC),6U_1D&U@#'76\:,
M)HZ98OLYZ]Z T$9-W[7BL]B[><-WU#E:V F =6OB]6V(@*$HMS.Y]VG6\XMT
MN7_L>&A[PSEJ'VJQLJFX[]B2XE[C+X.AUS<LG@;W27L"S[+%X9H>B'SF7-M#
M-L9X.7B3=M6?IRN?C(?NXI6E)D_IXM6C7\FKF9#/<1X/.V6I['A+8%3Z*TBE
M15A6Q4?>A/6W@9]_.N.'*LI:X1"K[*"E1PVW_YK^9BUHGB/'8T63GNYKDI&@
M##^M0#[_'C5OK;L>I=@I*MA8V-M7)%=UCS2<*$/>,YP 3*(3E__#.\R?\ML%
M)VF*M;DZ)9;EWQ=VLQW6J37!F$L6_/>N]OY)*"LL.'$%VFT6.I(5GA=^5749
MJ2]*U"_RB:CHK;.YS*FIJ\#D2)Z#N5Z9-,V#K]VIV+F;=4#K1(CX[7[^BN)"
M&_H1WJ/UW&@IY,!LQL%1(8^'@> 0:9"6TV#OPD.;YNB'C]^TSX2(;U-7:<-=
M^-<X4<%DYA?<K<C*UV=,2'(#DT>EW1,'LW-%\W5Q8/<GMK/&WEBB2R<2C3()
M+;ID5+&<S=&L]&P<"=3$='72WIBUV_KJ%<ND,!3; 951YU:(E(WQ-F"W=$KS
MTUEO27H>)\7G6_4<-IMVQ8I#[&\\V'<-+50X@:-K&YASVKQ]W9#VK@I<F5E)
M6[9IF>"6-#AL -3K95U\3P,TQG&QLU@7'_BB>.N</+[,"<+R\3P@*-W(^4GF
M:E>([F#PVRPZB:M:X40UJG"/5*#1HV&5;IX6A5JSY9ISB%E<V;*UQ<]P:&6=
M)T;*%2W9/>=/&\\'>]O/L9$<LW==%(ZTZ&+M!29"E,"T@[*9G"VC39O&;.4"
MC5/MIPD+GN%;40-B00W(55@IXN&O(=F+F+1U+)M],MPB</8FO^Q<%F. A_JE
MIEM-QNS,\G2NW]H&K3LN7)W-"<.I5&W_9;J;/\\J 3H.W<++Y;QV';3R,QBQ
MQ=> IT_!AQCPU15X2?TZG)W AST$X*%M-=W9,@%(=D+ !A!KXXB]Q4*$HUX"
M7/OJJ)KHRTGD]3/" [$@BW("SR$NUFN@W_() ,J, +2D9,BFZEY_.ZX_]RT3
M(=(T/VA]6J\.#6*:ME1JM/K\8R<Y5"+LK2JN3FIDE5X?,)K/:P]/A$BI:%\T
M\\D,")(<E>OHYTXT]L.T6\;$D;\5Q^]<Q,"XH51M!"!"P?!ZU\I@V*4H2;KG
MNLX3307G\D(\/?H^^V'.)66!0KBW$#MU_)%P6.QO=O#6[L+NY*;"WRBR[1G?
MR&H$_2L\+_(/I7C/Z!'.2LI*6Y@-J=-C%_I>D>=XO_/#TLY?3#+]R:IW]W8A
M1\J+CLG%3@2 O%H9_L@O1?/M,!<VJ9'%Z(P>P4&IC+;2'CG&2,-EGHPNCHD7
ML"%OO&O/#29O2ELYL<,I>*I\(P _%%2$>N"5MH^98$.N*UN:3$2I2]"0<]NP
M8$GKW]=!F/Z#(R%2XLLO5I.W>?HCV6+W/<R2@_8U3DK."W=+%R_0C^><_2<*
M\Y\T_G%YP*^>.VR)A7*/&:ESH/;[6FG=.]9KH9A]Q('L=9< T$7/CWEW$("Z
M/.B%$),A<>)T]!*. 'Q.J$=@UJ"XV/9)J,.\\+*]&QVNX,+ 0#S**O_FGZ!V
M4'P]V^!*K&@6-?K^B4T*F/9W+6JY[Z_F%W<F>C<%8M697+6V-20RN!;=DWZ7
M!$*O,N'>>Y17C1V3,_CXDJL<G?AO;$-D)B%ONG4'539 -4R&9+??@:NN)J*+
MG%C40/43WLXU[/8)C@VB=B% GHQT%M5=U2!%])?[)U;-%^(B#P_2;X12'$ZL
MB^?V9?HDKUGP9*$&PV*!\5&$P[R\LKF-7>?3Y)\7+>8UL8H?)4&D=U[J>PX$
M*982@/V^%G;,<K_G =8 WZ/)!-!-![3;X1TQG@2 EP <,#,M5)%'#7VM.XCZ
MAK1;DZR\ YHC P_$BA+;4N'[OY,GEG04^WVR3/\I<<,U83X'FR-2N_2A<>MO
MU<-G)R4EV:8 "* -BQ4E(4S_&U!+ P04    "  TBWU47/91)',R   .,P
M$    '1O;7I?,3!K:6UG-BYJ<&>=F650'%'WY@<( 0*!X!)@(%B X*X30K 0
M@KLE. PVN!."NT,R6 @N@[N&X! <!AC<+<B@@PW+^U_[LA]V][E5W55]3G7U
MK^Z]IY]3]V'N817PXH.\DCP  P,#\/EQ !X6 +( [">/POK/]2DV]E/<Y[BX
M.#BX+_ )\)Z3OB C)7E!0D)&24=-1D%+04)"PT1#2P]D9&0DHV9F8V9@I6-@
M9/C/2S"PGS[%Q<$EPL4E8B G(6?X?];#;P Q+N 2T(:%\0J 28R!18SQT ,
M @ 8V!C_)<#_$ 8FUA/LISBX>,_P'Q/J7P P,;"P,!^__Q'@,>K_& <\(<8F
M8>23>4JJ_@7G%82,/R@Q%Y?I7747N<;$";. F<LWO&<4E%34-"RL;*_9.02%
MA$5$Q<1EW\O)*R@J?=#4TM;1U=,W,+>PM+*VL;5S=7/W\/3R]@D."0T+CXB,
M2DI.24U+__X#^BLOOZ"PJ+BDM*:VKKZAL:FYY4]W3V]?_\#@T.34] Q\=FX>
ML;:^L;FUO;.[MX\\/3N_N+Q"7=_\APL#@(7Q/_5_Y")^Y,)\G)8G./_APL#T
M_$\"\1-L1KZG)#+J.%\@I*_X@W#)WB7F5G?A,0EHG)";N4P\HV 67&-!_@?M
MO\C^[\"^_7^1_2^P_\V% !!@83Q.'A8Q  18O7#0U%/Q5=.>J<2,C@1@>OQ^
M&=^N33-:&W^-;Q*X<OD H$G7BT>SW83?^RD] ')IBK:0)B\==_+30@MFA;(#
MUVV]'P!!1&C!!\!ANU,#S =TN-;95UINC%0E%J+\8N8*\PI&N9=U/0 <,NYL
MT(M("M"FB.<#(- @]8TC-4&VYI.]IAA"'^W0<7=V7'Q'U3O<P%B)(*V##J8'
MP,^EV?M[P:E*KWATL*XU&@&=C>^ZV9Q;L%"]PPOL@RF</ !Z7-QJ@5<GFMMG
M^+3'=\PFKW"RS/X] !9D/SF1@3^_1D^WCP5FMZ2@S-?U05LS./=UY+8!I%YQ
M,L$$LFB$QF5TT[6I>:PT&QS2!_,@:H7*K#N ;4?+W%3M^2K0/,$FS'YFHIW'
M+:V473RD(O1:6/OGS1N+?DG_O"OOF%L&3-Q]JY:_F]_;@M9>PSMWN1ZQ_$"H
MV7*VW_<>ZRQ0 8R!V];KC2CK.W8@"6;@A&O<VBQ4JMPW>=A\*#RJ/OL&-GY3
MGI)SDGX >  ,?-AJ/UEO5^IXAOK.,VPU_P#P"HQ5:T9)K!='/@ B?1NGGL:#
MZ5=31U\!R>T^=@J7B$IOE8RL9^G1"[%#T&>!L6X:=WS(]PQ'$SL/@ Y7?1%I
MW-G5L1_YBS&!4P+*6=)Y6_Y1P;WBA=(.!C(/ $PG9&DC/>?,5PDA;[P'@'?X
M1:&1C>[E]9D#J^I50M1PTU0!7E+XL7FB"M\3- \2P.98P'[S865#TU::8?;8
MT4+?_>5/,DP^ 9][.Q6VKJN;/NNY<;T\!]^D_)@'@+L"4F178A;LM/8 >&XC
MS.7N3? SK"O]+W."!/'4::_V<56YB'*Z3N*L1Z[+BK[A';BYWO"XEON@Y/O-
MD5!ZOES!BN+4[JEWVN^@P4&-MU(!(;K6X,_8+5&;F5 K9)2DI_H$O8/=I1R4
MM]!3,N<RED]2 GA7WQ')OLPZZ5@O];%O!1QB,,:N4,?*OY"!B@ *2U@7O&]Q
MN.4H18S.40UJ*-W 3^O/K:5$V(#>^FF]#=%%+]+%VI@==62#SLOP*FR%R]#1
M>7V&U0%@$B10.7L2?_>NJ%WB\Q.+YB[1RU4:JL&I0<T' $:!N7+Z!9?\58].
MSOSQTP7G]QF,)B[BVA%MC*N5U0MM-Q>[338S^5ISF-6T<=GU]!EE=A1AHF_6
MXA:3E!(IMQW%2??T2!2<:VH:UEU'Y=G+(BK7N<3[E>#2PX4F@^[V9OH4"DS,
MF9N0\_)JYN#\"ND8,"RY&XAXT0VY3-<A_JJMYH URWP[8WO'MMDW!(V2&E 9
M)@6(^%H+37S*++4E=Z4>Y85_ZJ/5%>&\<F0!7DYT]C4Z.%W@PH99IL.Q6AM1
M\*=EM-GTT[,J<'.P\J]HUC\RUWJ6JO1YT NZEVM.T1>!S[M@MCY^(FF4O-?5
M@^1#)-U[V1TSKKE";7(TU;X"T0[FFEAH4$7Z_4(X$%X^ATK6BT4;ZZH9N3X
M@!\#81K3/^.50P9+E"_?CXY,?B:XT;;A/M>*=62>@>#3_9*+J4F2L-!JDX0C
M:6 X=?$%DI2NQ?L!9,H-,ZF\BCU!5P&?9U4LI4[#EDKE6)]ZGX'ZVH*[@61H
MVEUI.F/NJUY>!5">+ ,#^AG8#!@+Q'>XBO3[8H='M<VN@!XT<=O5:KW2GZ=)
M0>C:G)<YR%_O,#JM.9E-TIPZ1= +SOX3"@8[E1DMK%H+3[X@VM'Y%R#@)W#[
M:>Y.WX$S<TV#74GJ =!LHK\!HD6)&,PLH_M[X%/R*Z^?P3(O=M^6%KWS0_1H
M9G+E"<WVT[]A3U[GDNE<SIS&W^"A&'.E9>K1[?;%WC:#))]7F*K )25*V&,E
ME;\X<!_F<NLG2U_W@0SV#MO82F"+E$J2)/U-O!SSA%+Q'^!J6ZC4F.GF!JN2
M&:'#6]->_D_M_ OA9^2UYGG&JAT;!FG+%W3"?4F;Y&*C1]DYH\5[L7E[D(*E
M56\6;MT1]S_R\E[4^UZ2\)1LUHEMT;A#H^RO%CF3M<XY\Y&0%/':XEIXA;T#
MR1!5>6B^<CVC]I^@:UW\C7O'!8T3QU;P?89]\GV2KC[3AN-$*ZC ADZ>.UNE
MSV*=;Q,T<K[>UMI'B8BAU*5 &W8Y",4.*3<[ZUU;/U-U*JIWD ])WDXB_U!M
M-QA[G\53U#HM=$MM5)/_8N!G]G>SSH&H&^G7L\- D;-*Z / JF"I&)4:,7:4
M"T3=ZDY5[0P?P].84#&E0+PSGLA_0@LY%*:+<_LO\EG?_6(W4&^DIK7_S$DH
M];)W8J4;=,=,_U&)H_6-+NG]N+S"&Y^-3IBGST_@ F7.Q6.=/&?2;N 6UW1G
MSHISLO9W-)IR@E.S)8&]G&BK+&W3(3%G4U,PVUA'$X\]C\ZK':$1PRV"5JK*
M5^7>-8%CUG<'$B^-9J:%N&35)BL%48>?&T5XE5XDR'X+38G9="NN:^VDELU?
MT/]KGM!%T[OMK>@)X)N.F2$6<&VQ)<*)04[F.'[X:%'7FLW*EJ#%BW97!N/V
M(UG;+ZG>V"][Y5&^>?*5-E7--=/C'\;-=(,TQ\3/4$_3G@\D 7ML10>JS2CS
M2M0>4^ND3O_FYVR+V1*"(L#6.[Z]3-IIG$MW5$1/N8$?_XEWU WK V"^;)\W
M.@FZI3"Z3FNIOI0YUI-#TK4>3V5@@J@92ISO)MS"82[]O"-U\ \4*LTZY23]
M=$]M85GF^4Q#IMEK197R4CD_S1(448\)4>>+@\M)0X%J.2MW^P2B0G#5"5OW
M6 04GB&X#(Q#^Q)FI'YC^R2O!+CGU$E.WM9A 4'$'7=^&:L4J;S$*ZA. ;;1
MU>94@$<N8)RRU9F+MJ?>FJT4/;H?WTH/3[;B@X(#7] /;J8KM+*,D]UO^CT
M-F9Z3%&4/0:ZD9,K&O6\;?P\T$*;:%;O3<>Q3W8%ZH/S\INE$(/FN34A?>;L
MDQ]L2>\,V?Q^B)4O%#ZO-AQ"2*SJ_EKV8T)NIA=/[(H0D7<_C7L[D<K1#SA9
M$JOP[ ,]N[-<:[=R>&V3?I.>&D9)H7/XYA/1E2+.Z8%11;[.[K[6POQW<:[>
M@NRJJ2&MT/JFA:DPWBJ<(GLX=S@5.&0Q+_A.&^:^:DJKWZ8^N*9B3*/7]ELE
M/[.,4)R'''-7_$Z@GZXON'B>/J2]+.BN*;]4?H]&W'5+HOWENV^N+393P_LN
M\H9WV)XFI&C$R5Y?&LRU<.SERVCCA;3YAB-2!C3YO]^0 :&MQ-VK2T0^C51/
MC:P;RCG)4NL;O[3YZ?D5;,^/9?W@.:83";YAI&#$PJ!OOO, OO"B!= (8DS.
M^*D Y&WCTC6:)6=+WW=H[3>!R)*C\+;@$C2W(L,6-3+'H?5%ZAS><3I)(LM;
M9J;M(.B*-4;@STJ28&4DUV6M5P/48;'U1WX\KK-6-A7PPZ03 >J$=2/?%",^
M'5__CYIZG9FMJ,K0D4+5"HKM;=R%]$394L;G@N]*I7RR1ZH&9Z;$<UX>*\KP
M_$E'1A8'UF<D.LQW1=.9LQ)$H7Z>_@PAMKH]#X"& H5M.W^%WQV<$V[/5=6F
MZZZ9&J)&Y3W?X%)KB.TL1T4A44K?ZNI_%-T*Q)^/D=(U7S,\ ,:A'5GAGNGC
M[A>54)"5Y?VCOQF[Y0T4J2QD<#OM0!T<F I%H)FDP^)/)L[0Q4-"X$F?-Z.!
MFMJ,:6)Y)/)=T^>?O81TKH5&S'MH#M,RK(N&:4F_KQSJ.N!+_\OF?6[1781*
M_W-C_\+45J=:/_*);V>=Y,Z3G0:QBLH2;;?[2NYPCAY-C<V.PG_&%H\N2RMU
MT*M5JWWR3D0(GN,"/[O_);3<Q(8C=F T9'HG8V.>8%RB@Q$DNDEL\.6$G(_2
M;<KC'\=<J5M6J01]#OO"2Z"Y.OMU/+S)">_ 9^8>7NE49OPCAKA$^S<&'FNK
MZ-9ZLYUFJICHL!N8FITSK^2DOLW>K.G,^9!1K4@J?>%F]N><X,D8[8D16:*8
M3FR53 5^]XL^-QLGJ(="V%K>'*#;TF?6O&B4O^BO%)&,::YE=?S,.G0)B/-]
M=*9P:H96I%=Q&XD3Q<4ZC9/.;N3XEHSOF3>#9V6)'W_9KSN6*>D1RTTJP6G(
MLR\=#C_&.E1!L7Z]&^ME%7.*?S^1W0;B59;"]'BZ.:W'L)1E<VXM. ?[^M,:
M>93SIGX/9Q 6P?^>1B_$UR*&O2631&,]&_^ZO*W$B']'B>@H@:Q_AL:>C6T+
M'A7RD\5\?<OTL]=7!5[VA(O,DY1HI2F2^.O]!GVTB7%%0Q$MFN&,[9O$-=O[
MY<2[*&&+&."7J#:P'53=XYP3Y^5(,V<F8?,&D*2_/-!JEY)DST,X<K-_\[5M
ME>B &>'$7MRWXLIX/W<,4U1E_>7UM%]Z$Q.S=;WU&,2CL=;I=>V11/['(\>
M7Q6RD-R>*"=[Z)':JNCSU,'C63'JNUZ_Z2TK?S**L)'^6$GOK4C[.^]UJ9T<
MKHKNG$I\H^EE0>1A[]5W].OI8ZL=E]$_GW#,<&&1E8PQ3+;*7,U QJ5AXMGJ
M\O2.QL8V[\[:1*-L?6:'GIN+<O^RAKX&*?PNV-IQQ++>;-W)U25O57/TB',!
M9A+5YQ.!; F:S38^,H.B&,NIOY,C>?^@<E,]Y>3<+H!5^OP$A<HU+3^V,A-]
MKV6)74/P/J^2);-_U4$0:@>8JG*R_+X*-5(^QHJY(..RHE)1/X$WEJ;C3U"
MVRQ7/[U_=/?I4KR]MS#[PP*"9SZU,=.OTRO.7TY#E=CX0_^_FYP?W")4&QEO
M<"HXDV8MP"/"1_]ZNJQ3'!V69 +DK':9%Q;[+P5QZ=^&N+-!%F:1)46<G*&*
MTF!#UW&@*1+[3P1ZR85T? !0+(17S[0&TUHT4CS)T!>X7?J-7-3:D&N*5%:E
MK?H*23?2,AC-8>D,N=#OV=]M&$N,\S%K91(1;<CZRS'I5I@G9"6R*@\KW+NZ
M"8T]_YN\KZGPO :;67&H0E%TKQ_FS^=0HK=W>4  ^55R71W??:,[L/*LG*UI
MUD'H=98.E_C92$IU_U-A]?B>V2F=EC93:].5_@> _[,3)'AE_/CG_=0 3X9&
M%9*PEB5UJ<X6XF;A)(S!J)'_549*5"C+N:4A%TSF:9!"^JX&3T:/7#]BE+\[
M>1I>4=EZZW+KI.[\V!G1"[VEUI]?*"/Q%Y_UA!^X^$H[2- ^ '2+1L;,OR//
M<Y"*'82N[L!3H7:P[3I/%>)]2WCXT#7?O^=,UB_E!48%#O01VW'N[9S_5)P9
M,+^PKK?6!DU1T]?'=!#9U-NX8[<%;_8?I2UBKYI+J4J=&5/9NW^4#/3DUKF:
MO.*#O<NRY?9:>@7"NXXL1R5:V2R_MXR%,J6:48<IU'N,_Q6 5SEIVQ\)^;LH
MKK_/%K0*6^;]:D\U5JBJ.0F;,X+-U'PJU>(=P(&YSJ24@FRNK#^2?-M2L%TS
M]M [TGQGJ(8<%!B=(L[*E^?MC#<X;Z?XQ"WRZBO3& /D[-D)%__Z)8@DOGJD
M1HUP,2;HU/5&5Y.[?IU3PI1?18Y8[_"O+ ^:_%+,/^ #G\:N7YP$89&.BOM+
MI-U6YQKSU*7J*;-EW$8,TM1LH4&:V,#OT7-%2OIE/]ID\NL'P+J4X^F5T?<E
ML>;7!>0[3GS?;@A.0!Q7\2'T@DCYZM6E@%F-&6XGF(-YU#(Q^T"85'@0"N-:
ME\7Z(D:AQ?VQD;+N1LBG;K6TA&E'%D1<)_P('XH3!SK!O+-AEL5V+?5+^;,?
MG*0GN8U_.,<)8]3=N!\8!Y2B7T'A>@:&7G4[7\MKCO#Y,VD3?-Q[O3-OX@K
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
M+'6>XK:9.C%V_NF(3W+8B791;2K^Q@/:A<W"4W)'CP:4N(A>3S,OP$P)SG9
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
M9>TKEU\PGM\/ &+G,K!=WF+4T2:JI(RH%6S?>351*N"G-^N-RZ5V*Z]ZD7=
M%I@M>ZG=F<8F1MDEY67MYS%_&(8)ZS]1T+)W-+20+MAO/^Z7,D#H,R5K58<F
M5^S^[M\&9V1<1LVD4*#GOKX^JJH4G-YK;_Z>4V]8G-<:OFH\2V_?T+WRQF[H
M[GG,_377 ^ X3:AKKY-.R-]L7?3S#.M3TY8_V!B='W9!:]+(]SF^.DUWF/%[
MZAS3ZQ<:MT-JY? X$"1]@R@,B;)<]8A"V+",,I^.X4PV>PDJZUO,E=B%4P.;
M1\&PZ?I#3?VO,B6FJI 7#EW&32-6S+R<3[6ZZ"_ZQ:\"MOZY3^5/7AVZP#K#
M&9+67_]-X+[$3P1L"'UZB;LUG5_G$,7T1@2W7U04AMI<X.#=('AN8=!X]VG+
M?#H-!+,\M(!OCQ(W?W'S=0;-BJS^U'@ 6" \DTS'R)W^YO-K^2IY CG^:?K3
M=T6L;#<0*HQI6Y\L1TN$06?RF8):9 T<V 3[DHJRC8=K^ /7R$^.D;8V*SJL
MF9)":UM[^89H3N@$MVWK".WI$><KZ*X/<Z"K4CWP\J_67L$>(P#]M^$!T/DN
MTVAJ9A0A5K"H8QQ;MM2'=LVNL.N8BJM3UQ]VV:BA!!.N9QI&O<[GDSPVU]J:
M7H^72!R;(E/7(OB;T2-L@V?# GH+ZJNQ0J:E$^/\\\0Y,47^BIID_;CI/D:)
MLE)NIMCH!H'Y"^'\5:9;1B1[)FXNAMVT8-+&[P6+:=H'C:+GZU&<\&X_MAQ=
MUYGS=*1-P[>53_7C#@[F:J7?_8(N%@Q$EIEGW,:X)8;Q%5(JUK_\:-A!&KRN
ML&O-XIV#$44?5PBG5@=A'-S^43V%E1D;;-O>%47Q91] 7U=8V<4.:&>39T!V
MZJUEJ&EJSY:*?]48JTC02+R<UG!P4I<CQX[E6!+1_.BP__I7$/^K(CA4N[-=
MCFR 1NMF.K',X79I]U?"V,/\?P-02P,$%     @ -(M]5);9AN28*@  )2L
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
MW,[L?YU(?I9]/CZZ\NXJJLO<>C7XMTT9%=H-^]@0=5@E)5%3F.-)],E1C$M
M$Q[L3GBI;Z<=FJUDM'\6*VA9J:BA<W2>5)D,<9IT%.BIZ+=4 E6X>_0P8RAR
M?_;E"*NH^1%S;*2J]]ZR=B,9;D32RQJ/?_S*\EBQ/(O?G0-$.7Y>&: BCFXV
MIR%N$YAY<\CG./H<]8)_%_(4CO>WJ9Q7E4ERE$ PZMN#+:BK+KVIR.YB??=@
M5W",\E\+]RN,#*Q/[V[SZK/Q;9W_5]P#?;]FB4R_E-<7K,FG7+T?QNR&G%(O
M MMU&ZY*E=T:$ML,!BM/;SG8%7_3AO]5+CY@JZ]!)*VO3>*QT=BX!N$VP<=D
M=&&AJ@8%$<R2-,^A6%72TGN+0L:")6]K:S,D%:R8$D(_!Y5TZMZ/6.4.7E8)
M3Y$!#VO,9,/#Y:K(K6B>'/F7S4%GZEWP+@H+>M:A1H/$7S )]92M]A!*YBX^
MR>?PY'=V.!AWV%;MG,DYSF\<,]HD?PF<U:::-U,S]N>5#[HM49[HW6JF8WR^
MWS2-.*5@_X(1Y'\**[N A^OQ9A.S9.C'/J1QSM8>L)WB<.\?WOD/GI<V5;W9
M_L23JCKBDB_TH^]597X1W%;=R84[HVD44^ SM )ZWM+B$CW2H9Z^%XHZKYB(
M;7'NM33KIZ>%%Q9H>Q)U',9Y9"O)9$$LA'%Y.6VXVF+@^8*R+]"P>RCZ5?9Q
M^PC(M*M9S#@:O?8(2"PT]WUQ%^AE?VI/SJ"\4Y] SOQF7]*_9]S1Y/(L=]+]
M.<7OR;=]Y8?K33V3DRIYL/6+7176Y!$ZZ_FF3FJV1G2EF8H_OJA(V$< 8';3
MXIE$8O#L5])]]C2A'UY5O8'/C*\\^UQ5G(F2X.-I#^7Q:9=6G#EP5W#S:&J1
M+4I$%S]9S('O_0TIN$WP=PZ9/?A20CUQ3%V%Z[I1;!'NNC=5X61&%+X[ZD[M
M -WZDDY^&"+@9,];TIPR,X%J[4(CD-P3PY6+)9]3$6#\>!7J3\@P/U-O[+N)
MI5(U@H$.Z+5JD/,5JO2*HB#I]/;=*VCV4MY2MOPA$8Y,>&UIZZR=UKKD>:P/
M=A&>OCB;L*587X<O#"TEO][BSR,-CU3+6$/E)+V^;-7Z>0<)YCA3TOV5W//
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
MD4ID*J>OD[QZ'?HM*IR*:U5#I;'J03RS+A'\!1^' A]__Q=02P,$%     @
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
M"OA(XUIIGA^9N*"H6B(;>>UAWH79Y&%J!IY5Q>.3 /\1=<< '5 G\*43Q-?
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
MRMT0]0I3BN_Y3C-V:"^RHZ0U,NGTTVB\/'PB1?ZK<]+P?-5V$HOOWPR[9DR
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
M%4#FS7Z\MD F%[%WT=^=%M?K'P OYZ"_%Y;6!O(*_28O*OX@K7T%PO;?"0,
MM30QRDM^A(?Y9B/WM$K+,=A0M%&,H1V5=-X4>K6KDO#*EK'F<?,O[)F)NBB%
M99XN\L@M28X4Z&I5;?@R"=BB>M0[?/;EDCP8[GM*%I3[QH2_F4!@Q2;\ZQEU
M#+$2^)>]YQ]E[G=&G0)J%H%R8@EJ!+ASJS1':3Z3FN_"8'9HB7/[>LM2J-V>
M!28@;5)J\8 ,FJ1\))>>$1[&ZUM)3]*V\<M+)NJ-<61LW38XWK3M/#,J_OYZ
MLLLS5N8V!S;%M$:7Z5.D-MCQVGV6^W>*2&Z&@7+B30$)SM%.RL />-M<0N@N
MH4^#_^NQBYA53& Q*N6J;07Y(7:PE#"9^6"::R@(&"V"X'P,T3>^6VJYRT6=
MELP<YNEH%6 )]QA/K+6+@]?W\"GWC=S+3TO:G\6U4ZQ2+EI[WT,X<[Q#HDL$
M7^ :CP8PV)U'N7IL]HM^?]:3.'5FCING!L/&--#RZXZ<W1'06BHT&A4;=.G$
M%TC-F8L2S>I]L(C$#IJ7Z%I SV :T5J7+ES1A> R/\F)F?97Q[0G;37]Y9EU
MW.DDVU+L%C9F47Y.2_[ 3G(,=^4O- SV.A/#!-&9>LG[V$W=^!NFL7CY75C5
MG.F"6OFHA\[HBI*AWDW#[-<O;R7S*OV\((AM.M%1P2:'^5Z5>#R#F;[/_/X9
M_KD5[:Z]&["5R$G6TCG33NB^QUA5HO[?L+9N5[%]"1A 8C.B,2'C.W(50D=X
M-(8A+W:"N&8M*8E7Q/O0O?5O2? G7'H 4,V9;GM6#]C:$ZNR9WM_#EN=[,T@
MJHC7FACQ]77GRDTTKL0/2:*QE;R=',J@LC'1Z@G;$B5Y /@_[VT8)\,>1Q8F
MCII5Q"4TUI%F"]_C?\&2G&X]'[![:A;;]TT'TB=8/XZ@_+GW)>PY=OO9XG7D
MX@JF2E>=5VUIP%B21,19RTI\W ]LR&>NPVH]8(#SI[<7T>7>"67M(@RYL1$]
M2_]1HPMON5;^*U*#"[\\19^4>2I<!2FQ,X?W:O.];=.EQ/$BDS'D7]O[9%A=
M.RKPBT7#L\1RZ':J]*+SFBR\T0<97I4XZ72NY#A%W"=,0W:&+V561K/0(?68
M\/DVCZ\+GE3( 9#SEQ6F[CYS RFE<S_?="@15 42KTG\6".O&)-*&DM&3?.U
M:Z65J6S#^'E(97W$[*F)LT?JIEOSV\/(Z[=4_C.2.UG5RQA@,L(]D"@UEN8&
M._K[>:GHSE\SS$UX2>7K9B(#*\VO]T.L]*=[I@>'#P 4R+>D*21Z-_[&XC5T
M3S#9<JJB0UZF.V#3J?&9A+"P^&2"(9JV\5T]LC2'^)BC_=5TI/<+.OX>4XJ
MYHS\W]P.1U;:YVJ#>&/+5H<^,W6Z-3%>=P(_X3 &S>JPU=/J:J <EVG9R]%;
M.:L!?.4:WL@>K-6O=VM2'<T/@'3WFA3#F>Y>'7@^1L5&G1$YW-:3VYCF%W:_
M:Z[SK*IN26H'2#=%-JOBL(6>)U/^T+V&.Y*2^KKC[^'Z+\R3@IHXN?4'@#?%
MBI3LCFE-OH,A;NA0JE)S#U3>E _ NMU$O<W1Y\RI$ZUM/LX%;Z,W[R_)9^]U
ME3X7S!?L69-P4'GQ2;;^%0;244W\IKL6:?GG = HBO#)#X;92<CT/MWU\\VE
ME0?6UT=E81UMMV<')"PV X_^;4KU<H78OBZCT&4Y8$_QD!/"3VK92+=^N!2.
M60HV,E\DN=M$JY>1[JO42X:-"I8]O1PJAKIT/.>><C9R6\>+>P!@"<]=DIAJ
M'OF8$>O/&QOU0&NJ$PV]3R:.M*LXQ+]BO6]_70G4[+[=Z1:$O3"SUTK.TZTQ
MF;[YR-SXX3IC.Z EG2?<SZ  FL)6"ND[D-*L#N00.A[;A6H&Z%G&U_4P9TAL
M%13/JC;0)1QN:!SA!EO6U<:TO:.\X7S9(UCU?'^I1IGV9*RB_MKUL4]42R>7
MIM,X;(EL_!)]6^O[ &@R$]\$OKI56*(62V>5CD**V:;VWWP8>F1UI:/0[]VJ
M R"80B3<_0Y@90]2H2;3'/*6C9GXK>V=ON_6H]O2P"5!F._<*+<T40=M6>*M
MB$KX8Y&B$Q9/8PEG[W@G:MQ3/].18A2=_,X!=>IP]0#H\*Q^4;3 /+N?ON"8
M[8J3 <[XMX,@>0BFTM&TOTM]]W702RDK^DV.PSNBM,EG31T8DW#O$]"UZ-O!
M9^E\,.-)7O\5]:?3(O";+G+GA;EJ.DO_)[.3O86Y[0X;?56A)&.1)%?C4WNK
MCC26?QX5+HLQL)M,[QO6=+7@Z<]T8VS"?(MZP]53(:P_,I-83\DZM^=%CA0B
M4U1$5J/;50 NE5741.@+%3K]@(SQ]KL$OVJ^:$( <.SNL3T*YKA53=Z-^]J"
M4BIY26%%7ZTDI3SG,RE/*,,KW9<?+!<$2P+MCFXE?A+^K1T(X))4)Y@S47HN
M..LYP^0^[KUG(K'6'Z]<RZ IK_^&&2"A#OM;]T(Q[%2E4X<3GQ-*-YVKG!T5
MNZ:JMKOE,;-C(MF%9V3W*UI \TM#DPCK?,,"GH/N11+;D(CDQVYJ)@IQJF-%
M*Y:15UW8\OFLT>-U2[0^M-QB=:7O[J^WR)XS^-% 5C"%:EKI@1[9%"9 8]-2
MB.(=/FPB:)'.GCO:!3'HDY6+O<;ZS?2[D/B6LS0329K.._'QGA>:\!*9,-[.
MCQ7PYC-]-P</4S;FOT?KV7E;]\]:4K5J;C[PT+63\]=F8-UR]'$Y91O=P/ P
M&,ETSRQ;9*U]:U2KEI!M_D":^05JHBE5?W@7N4?GSZ.A]_;C6V4:O@L<JF,T
M#91OR2;X?+R2MBKB[0+\';=G#>U7$7J-2:TQQ&]AX*OY&62@_;V5F1WR*SE(
M)#"-)M$FTO-S7)TZ#M9$XS $*G"Y9K_Z $A,IL=/<R+;G&=I&.)T-#:UZWH
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
M* Z,+]I[,A;^)FD9?BM6%>,D+^;[CI/C/=5X2)9\=1 (4EAA226>W8FB&>E
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
M(B_U;UCRJ2PTNQ:YW4Z&Z(^*-SJJ$%Z93=9"-JN'(VEC*B7V#T:#T8C_"+/
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
M#^DWG_SO=GQW3\'_&];)OP!02P$"% ,4    "  SBWU42?HU0=<6  "\!P$
M$0              @ $     =&]M>BTR,#(Q,3(S,2YX<V102P$"% ,4
M"  SBWU4YLA,+W49  !N5 $ %0              @ $&%P  =&]M>BTR,#(Q
M,3(S,5]C86PN>&UL4$L! A0#%     @ ,XM]5 R=U'-@*@  PJH" !4
M         ( !KC   '1O;7HM,C R,3$R,S%?9&5F+GAM;%!+ 0(4 Q0    (
M #.+?52,Z)/Y5GX  ,]U!@ 5              "  4%;  !T;VUZ+3(P,C$Q
M,C,Q7VQA8BYX;6Q02P$"% ,4    "  SBWU4)(>):C%@  !$2 4 %0
M        @ '*V0  =&]M>BTR,#(Q,3(S,5]P<F4N>&UL4$L! A0#%     @
M-(M]5$XD8F^L3@( ?.D8  P              ( !+CH! '1O;7I?,3!K+FAT
M;5!+ 0(4 Q0    ( #2+?51)6)%:[A0  ,\5   1              "  02)
M P!T;VUZ7S$P:VEM9S$P+FIP9U!+ 0(4 Q0    ( #2+?51 A9(1:!\  !H@
M   0              "  2&> P!T;VUZ7S$P:VEM9S(N:G!G4$L! A0#%
M  @ -(M]5*Z*$$L3(@  P"(  !               ( !M[T# '1O;7I?,3!K
M:6UG,RYJ<&=02P$"% ,4    "  TBWU4H]ZUW\(4  ""%0  $
M    @ 'XWP, =&]M>E\Q,&MI;6<T+FIP9U!+ 0(4 Q0    ( #2+?53/1QV"
MH!@  $@9   0              "  >CT P!T;VUZ7S$P:VEM9S4N:G!G4$L!
M A0#%     @ -(M]5%SV421S,@  #C,  !               ( !M@T$ '1O
M;7I?,3!K:6UG-BYJ<&=02P$"% ,4    "  TBWU4EMF&Y)@J   E*P  $
M            @ %70 0 =&]M>E\Q,&MI;6<W+FIP9U!+ 0(4 Q0    ( #2+
M?51"MON1A#D  !LZ   0              "  1UK! !T;VUZ7S$P:VEM9S@N
M:G!G4$L! A0#%     @ -(M]5'37.'CJ$   _1$  !               ( !
MSZ0$ '1O;7I?,3!K:6UG.2YJ<&=02P$"% ,4    "  TBWU4*RA=$TP!  !5
M P  #@              @ 'GM00 =&]M>E]E>#(Q,2YH=&U02P$"% ,4
M"  TBWU4]VN57WH'  !9)0  #@              @ %?MP0 =&]M>E]E>#,Q
M,2YH=&U02P$"% ,4    "  TBWU4M))L>8H'  "$*   #@
M@ $%OP0 =&]M>E]E>#,Q,BYH=&U02P$"% ,4    "  TBWU4[(CQ_U,$  #H
M%   #@              @ &[Q@0 =&]M>E]E>#,R,2YH=&U02P$"% ,4
M"  TBWU4*)"/BX 0  !L2P  #0              @ $ZRP0 =&]M>E]E>#0R
:+FAT;5!+!08     %  4 -\$  #EVP0    !

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